{"id":576,"date":"2026-10-07T10:26:31","date_gmt":"2026-10-07T10:26:31","guid":{"rendered":"https:\/\/omgiiegh.co.za\/branding\/?page_id=576"},"modified":"2026-10-07T10:38:02","modified_gmt":"2026-10-07T10:38:02","slug":"branding-roi-calculator","status":"publish","type":"page","link":"https:\/\/omgiiegh.co.za\/branding\/branding-roi-calculator\/","title":{"rendered":"Branding ROI Calculator"},"content":{"rendered":"\n<!-- Omgiiegh Branding ROI Calculator. Paste this whole block into one Custom HTML block. -->\n<link rel=\"stylesheet\" href=\"https:\/\/fonts.googleapis.com\/css2?family=Nunito+Sans:wght@400;600;700;800&#038;display=swap\">\n<div class=\"omgroi\" id=\"omgroi\">\n<style>\n.omgroi{--paper:#f7f8fb;--surface:#ffffff;--ink:#0d0e12;--muted:#5a5f6e;--line:#dde1ea;--accent:#1e3a8a;--accent-soft:#e3e9f8;--bar:#c9cfdc;--panel:#0d0e12;--panel-ink:#f5f6f9;--panel-muted:#b3b8c6;--panel-line:#30333d;--yellow:#f2ec1a;--red:#ed1e24;--display:\"Avenir Next\",\"Avenir\",\"Nunito Sans\",\"Segoe UI\",Arial,sans-serif;font-family:var(--display);container-type:inline-size;color:var(--ink);font-size:16px;line-height:1.5;text-align:left}\n.omgroi *,.omgroi *::before,.omgroi *::after{box-sizing:border-box}\n.omgroi [hidden]{display:none!important}\n.omgroi p,.omgroi h2,.omgroi h3,.omgroi ol,.omgroi li{margin:0;padding:0}\n.omgroi .or-wrap{display:flex;flex-direction:column;gap:32px;background:var(--paper);color:var(--ink);padding:28px 20px;border-radius:16px}\n.omgroi .or-stripe{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--accent) 0 25%,var(--red) 25% 50%,var(--yellow) 50% 75%,var(--ink) 75% 100%)}\n.omgroi .or-pillars{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}\n.omgroi .or-intro{display:flex;flex-direction:column;gap:10px;max-width:42em}\n.omgroi .or-h{font-family:var(--display);font-weight:800;font-size:clamp(28px,6cqw,46px);line-height:1.06;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}\n.omgroi .or-sub{color:var(--muted);font-size:17px}\n.omgroi .or-calc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:start}\n.omgroi .or-form{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:18px;min-width:0}\n.omgroi .or-field{display:flex;flex-direction:column;gap:6px;min-width:0}\n.omgroi .or-label{font-weight:600;font-size:15px;color:inherit;margin:0}\n.omgroi .or-hint{font-size:13px;color:var(--muted)}\n.omgroi .or-input{display:block;width:100%;max-width:100%;height:auto;margin:0;font:inherit;font-size:16px;line-height:1.4;color:#0d0e12;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;box-shadow:none;font-variant-numeric:tabular-nums}\n.omgroi .or-input:focus-visible,.omgroi .or-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}\n.omgroi .or-example{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}\n.omgroi .or-results{background:var(--panel);color:var(--panel-ink);border-top:4px solid var(--red);border-radius:14px;padding:26px;min-width:0}\n.omgroi .or-stack{display:flex;flex-direction:column;gap:20px}\n.omgroi .or-eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--panel-muted)}\n.omgroi .or-gate-h{font-family:var(--display);font-weight:700;font-size:28px;line-height:1.12;color:var(--panel-ink);text-wrap:balance}\n.omgroi .or-note{color:var(--panel-muted);font-size:15px;max-width:36em}\n.omgroi .or-gate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}\n.omgroi .or-gate .or-wide{grid-column:1 \/ -1}\n.omgroi .or-gate .or-input{background:#ffffff;border-color:#ffffff}\n.omgroi .or-gate .or-input:focus-visible{outline-color:var(--yellow)}\n.omgroi .or-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--panel-muted);margin:0}\n.omgroi .or-consent input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--yellow)}\n.omgroi .or-consent a{color:var(--panel-ink);text-decoration:underline}\n.omgroi .or-btn{display:block;width:100%;margin:0;font:inherit;font-size:16px;font-weight:700;line-height:1.3;color:#0d0e12;background:var(--yellow);border:0;border-radius:8px;padding:13px 18px;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}\n.omgroi .or-btn:hover{background:#fff64a;color:#0d0e12}\n.omgroi .or-btn:focus-visible{outline:2px solid #ffffff;outline-offset:2px}\n.omgroi .or-err{color:#ffb4ae;font-size:14px;font-weight:600}\n.omgroi .or-thanks{font-size:17px;color:var(--panel-ink)}\n.omgroi .or-setup{font-size:13px;color:var(--panel-muted);border:1px dashed var(--panel-line);border-radius:8px;padding:10px 12px}\n.omgroi .or-big{font-family:var(--display);font-weight:800;font-size:clamp(40px,11cqw,76px);line-height:1;letter-spacing:-.02em;color:var(--yellow);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n.omgroi .or-big.or-none{font-size:clamp(24px,5cqw,36px);line-height:1.15}\n.omgroi .or-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--panel-line)}\n.omgroi .or-stat{padding:16px 0;border-bottom:1px solid var(--panel-line);display:flex;flex-direction:column;gap:2px;min-width:0}\n.omgroi .or-stat-l{font-size:13px;font-weight:600;color:var(--panel-muted)}\n.omgroi .or-stat-v{font-family:var(--display);font-weight:700;font-size:28px;line-height:1.15;color:var(--panel-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n.omgroi .or-stat-c{font-size:13px;color:var(--panel-muted)}\n.omgroi .or-section{display:flex;flex-direction:column;gap:16px}\n.omgroi .or-h3{font-family:var(--display);font-weight:700;font-size:24px;line-height:1.15;color:var(--ink);text-wrap:balance}\n.omgroi .or-lede{color:var(--muted);max-width:42em}\n.omgroi .or-rank,.omgroi .or-rank li{list-style:none;margin:0;padding:0}\n.omgroi .or-row{width:100%;display:grid;grid-template-columns:13em minmax(0,1fr) 9.5em;align-items:center;gap:6px 14px;margin:0;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:16px;font-weight:400;line-height:1.4;text-align:left;text-transform:none;letter-spacing:0;box-shadow:none;cursor:pointer}\n.omgroi .or-row:hover,.omgroi .or-row[aria-pressed=\"true\"]{background:var(--accent-soft);color:var(--ink)}\n.omgroi .or-row[aria-pressed=\"true\"] .or-name{font-weight:600}\n.omgroi .or-track{display:block;height:10px;border-radius:5px;background:var(--line);overflow:hidden}\n.omgroi .or-fill{display:block;height:100%;border-radius:5px;background:var(--bar)}\n.omgroi .or-row[aria-pressed=\"true\"] .or-fill{background:var(--accent)}\n.omgroi .or-num{text-align:right;font-variant-numeric:tabular-nums;font-size:15px}\n.omgroi .or-num small{display:block;font-size:12px;color:var(--muted)}\n.omgroi .or-advice{display:flex;flex-direction:column;gap:10px}\n.omgroi .or-tip{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-width:60em}\n.omgroi .or-tip strong{color:var(--accent)}\n.omgroi .or-tip.or-warn strong{color:#c4161c}\n.omgroi .or-alts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}\n.omgroi .or-alt{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:10px;min-width:0}\n.omgroi .or-h4{margin:0;padding:0;font-family:var(--display);font-weight:700;font-size:18px;line-height:1.2;color:var(--ink)}\n.omgroi .or-pick{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0 2px;border-top:1px solid var(--line)}\n.omgroi .or-pick-t{min-width:0}\n.omgroi .or-pick-n{display:block;font-weight:700}\n.omgroi .or-pick-d{display:block;font-size:14px;color:var(--muted)}\n.omgroi .or-try{flex:none;margin:0;font:inherit;font-size:14px;font-weight:700;line-height:1.3;color:var(--accent);background:none;border:1px solid var(--accent);border-radius:8px;padding:7px 12px;cursor:pointer;text-transform:none;letter-spacing:0;box-shadow:none}\n.omgroi .or-try:hover{background:var(--accent-soft);color:var(--accent)}\n.omgroi .or-try:focus-visible{outline:2px solid var(--accent);outline-offset:2px}\n.omgroi .or-legal{border-top:1px solid var(--line);padding-top:20px;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted);max-width:50em}\n@container (max-width:720px){.omgroi .or-alts{grid-template-columns:minmax(0,1fr)}.omgroi .or-calc{grid-template-columns:minmax(0,1fr)}.omgroi .or-row{grid-template-columns:minmax(0,1fr) auto}.omgroi .or-track{grid-column:1 \/ -1;grid-row:2}}\n@container (max-width:460px){.omgroi .or-stats,.omgroi .or-gate{grid-template-columns:minmax(0,1fr)}.omgroi .or-wrap{padding:22px 16px}.omgroi .or-results,.omgroi .or-form{padding:18px}}\n<\/style>\n<div class=\"or-wrap\">\n  <div class=\"or-stripe\" aria-hidden=\"true\"><\/div>\n  <div class=\"or-intro\">\n    <p class=\"or-pillars\">Visibility &nbsp;&bull;&nbsp; Usability &nbsp;&bull;&nbsp; Brand value<\/p>\n    <h2 class=\"or-h\">What is your branded merchandise worth?<\/h2>\n    <p class=\"or-sub\">Pick a product and enter your order to estimate the lifetime impressions, leads and value it could generate. Every benchmark comes from ASI consumer research.<\/p>\n  <\/div>\n  <div class=\"or-calc\">\n    <div class=\"or-form\">\n      <div class=\"or-field\">\n        <label class=\"or-label\" for=\"or-product\">Product type<\/label>\n        <select class=\"or-input\" id=\"or-product\"><\/select>\n        <p class=\"or-hint\" id=\"or-product-hint\"><\/p>\n      <\/div>\n      <div class=\"or-field\">\n        <label class=\"or-label\" for=\"or-cost\">Cost per item (R)<\/label>\n        <input class=\"or-input\" id=\"or-cost\" type=\"number\" inputmode=\"decimal\" min=\"0\" step=\"0.01\" value=\"23\">\n      <\/div>\n      <div class=\"or-field\">\n        <label class=\"or-label\" for=\"or-qty\">Quantity<\/label>\n        <input class=\"or-input\" id=\"or-qty\" type=\"number\" inputmode=\"numeric\" min=\"0\" step=\"1\" value=\"80\">\n      <\/div>\n      <div class=\"or-field\">\n        <label class=\"or-label\" for=\"or-spend\">Average spend per customer (R)<\/label>\n        <select class=\"or-input\" id=\"or-spend\"><\/select>\n        <p class=\"or-hint\" id=\"or-spend-hint\"><\/p>\n      <\/div>\n      <p class=\"or-example\">These are example figures. Change any field to match your own order.<\/p>\n    <\/div>\n    <div class=\"or-results\" aria-live=\"polite\">\n      <div class=\"or-stack\" id=\"or-locked\">\n        <p class=\"or-eyebrow\">Your results are ready<\/p>\n        <h3 class=\"or-gate-h\">Tell us where to follow up, then see your numbers.<\/h3>\n        <form class=\"or-gate\" id=\"or-gate\" novalidate>\n          <div class=\"or-field\"><label class=\"or-label\" for=\"or-first\">First name<\/label><input class=\"or-input\" id=\"or-first\" type=\"text\" autocomplete=\"given-name\"><\/div>\n          <div class=\"or-field\"><label class=\"or-label\" for=\"or-last\">Last name<\/label><input class=\"or-input\" id=\"or-last\" type=\"text\" autocomplete=\"family-name\"><\/div>\n          <div class=\"or-field or-wide\"><label class=\"or-label\" for=\"or-email\">Work email<\/label><input class=\"or-input\" id=\"or-email\" type=\"email\" autocomplete=\"email\"><\/div>\n          <div class=\"or-field\"><label class=\"or-label\" for=\"or-company\">Company<\/label><input class=\"or-input\" id=\"or-company\" type=\"text\" autocomplete=\"organization\"><\/div>\n          <div class=\"or-field\"><label class=\"or-label\" for=\"or-phone\">Phone<\/label><input class=\"or-input\" id=\"or-phone\" type=\"tel\" autocomplete=\"tel\"><\/div>\n          <label class=\"or-consent or-wide\" for=\"or-consent\"><input id=\"or-consent\" type=\"checkbox\"><span id=\"or-consent-text\">I agree that Omgiiegh Branding may contact me about my results.<\/span><\/label>\n          <p class=\"or-err or-wide\" id=\"or-err\" role=\"alert\" hidden><\/p>\n          <button class=\"or-btn or-wide\" type=\"submit\">Show my results<\/button>\n        <\/form>\n        <p class=\"or-setup\" id=\"or-setup\" hidden>Preview mode: lead capture is not connected yet, so details entered here are not saved.<\/p>\n      <\/div>\n      <div class=\"or-stack\" id=\"or-open\" hidden>\n        <p class=\"or-thanks\" id=\"or-thanks\" hidden><strong>Thank you, your results are ready.<\/strong> We&#8217;re excited to show you the waves your brand could be making.<\/p>\n        <div class=\"or-field\">\n          <p class=\"or-eyebrow\">Estimated lifetime impressions<\/p>\n          <p class=\"or-big\" id=\"or-imp\"><\/p>\n          <p class=\"or-note\" id=\"or-imp-note\"><\/p>\n        <\/div>\n        <div class=\"or-stats\">\n          <div class=\"or-stat\"><span class=\"or-stat-l\">Total cost<\/span><span class=\"or-stat-v\" id=\"or-r-cost\"><\/span><span class=\"or-stat-c\">Cost per item multiplied by quantity.<\/span><\/div>\n          <div class=\"or-stat\"><span class=\"or-stat-l\">Estimated conversions (leads)<\/span><span class=\"or-stat-v\" id=\"or-r-leads\"><\/span><span class=\"or-stat-c\" id=\"or-r-leads-cap\"><\/span><\/div>\n          <div class=\"or-stat\"><span class=\"or-stat-l\">Estimated value<\/span><span class=\"or-stat-v\" id=\"or-r-value\"><\/span><span class=\"or-stat-c\" id=\"or-r-value-cap\"><\/span><\/div>\n          <div class=\"or-stat\"><span class=\"or-stat-l\">ROI<\/span><span class=\"or-stat-v\" id=\"or-r-roi\"><\/span><span class=\"or-stat-c\">Estimated value as a percentage of total cost. 100% means the estimated value equals what you spent.<\/span><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"or-section\" id=\"or-recs\" hidden>\n    <h3 class=\"or-h3\">Recommendations for this order<\/h3>\n    <p class=\"or-lede\">Worked out from the ASI benchmarks and the figures you entered. Use them as a guide when you compare quotes.<\/p>\n    <div class=\"or-advice\" id=\"or-advice\"><\/div>\n    <div class=\"or-alts\">\n      <div class=\"or-alt\"><h4 class=\"or-h4\">For a better return<\/h4><p class=\"or-hint\" id=\"or-alt-roi-note\"><\/p><ol class=\"or-rank\" id=\"or-alt-roi\"><\/ol><\/div>\n      <div class=\"or-alt\"><h4 class=\"or-h4\">For more visibility<\/h4><p class=\"or-hint\" id=\"or-alt-vis-note\"><\/p><ol class=\"or-rank\" id=\"or-alt-vis\"><\/ol><\/div>\n    <\/div>\n  <\/div>\n  <div class=\"or-section\">\n    <h3 class=\"or-h3\">Lifetime impressions per item, by product<\/h3>\n    <p class=\"or-lede\">ASI&#8217;s lifetime figure already accounts for how long people keep a product, how often they use it and how many people see it. Select a row to load that product.<\/p>\n    <ol class=\"or-rank\" id=\"or-rank\"><\/ol>\n  <\/div>\n  <div class=\"or-legal\">\n    <p><strong>Research disclaimer:<\/strong> Calculations use benchmarks from the ASI Global Advertising Impressions Study, 2026\/2027 Edition. ASI research is based on consumer research and should be treated as a directional benchmark, not a guarantee of impressions, leads, sales or revenue. Actual results will vary based on product quality, distribution, audience, campaign execution, sales processes and other factors.<\/p>\n    <p>Research provided by the Advertising Specialty Institute, &copy;2026, All Rights Reserved.<\/p>\n  <\/div>\n<\/div>\n<iframe name=\"omgroi-sink\" title=\"Form submission\" hidden><\/iframe>\n<script>\n(function(){\n\/\/ ---- SETTINGS: Zoho CRM web-to-lead form 'BROIC'. Empty the two codes to run in preview mode. ----\nvar CFG={action:'https:\/\/crm.zoho.com\/crm\/WebToLeadForm',xnQsjsdp:'f16d0df5a2dbadd19871772fda429d3617004a5254c53f566a7eda529dabce77',xmIwtLD:'4ca9153dccec7aece60ffafb4527ca6ca083694110935a4940fce5571f4de69fa455f7900db511e8241420433f86acd3',returnURL:'null',extra:{zc_gad:'',ldeskuid:'',LDTuvid:'',aG9uZXlwb3Q:''},privacyUrl:'',leadSource:'Online Store'};\n\/\/ ---- ASI Global Advertising Impressions Study 2026\/2027: lifetime impressions per item, share more likely to do business. ----\nvar PRODUCTS=[\n{name:'Bags',impressions:4900,conversion:0.77},\n{name:'Blankets',impressions:1200,conversion:0.87},\n{name:'Buttons \/ Lanyards \/ Stickers',impressions:600,conversion:0.67},\n{name:'Calendars',impressions:550,conversion:0.64},\n{name:'Desk \/ Office Accessories',impressions:1200,conversion:0.83},\n{name:'Drinkware',impressions:1300,conversion:0.74},\n{name:'Fleece \/ Jackets',impressions:9000,conversion:0.85},\n{name:'Food Gifts',impressions:null,conversion:0.92},\n{name:'Headwear',impressions:4000,conversion:0.72},\n{name:'Health & Safety Products',impressions:400,conversion:0.82},\n{name:'Housewares \/ Tools',impressions:1200,conversion:0.79},\n{name:'Magnets',impressions:800,conversion:0.63},\n{name:'Notebooks \/ Notepads',impressions:500,conversion:0.75},\n{name:'Polos',impressions:2900,conversion:0.72},\n{name:'Power Banks',impressions:1800,conversion:0.81},\n{name:'T-Shirts',impressions:3500,conversion:0.69},\n{name:'Umbrellas',impressions:2300,conversion:0.76},\n{name:'USB Drives',impressions:400,conversion:0.71},\n{name:'Writing Instruments',impressions:1900,conversion:0.77}\n];\n\/\/ ---- Average spend ranges. The midpoint is used for modelling. ----\nvar SPEND=[\n{label:'Under R500',mid:250},\n{label:'R500 to R1,000',mid:750},\n{label:'R1,000 to R2,500',mid:1750},\n{label:'R2,500 to R5,000',mid:3750},\n{label:'R5,000 to R10,000',mid:7500},\n{label:'R10,000 to R20,000',mid:15000}\n];\nfunction calc(costPerItem,quantity,product,averageSpend){\nvar totalCost=costPerItem*quantity;\nvar totalImpressions=product.impressions!==null?product.impressions*quantity:null;\nvar estimatedConversions=Math.round(quantity*product.conversion);\nvar estimatedValue=estimatedConversions*averageSpend;\nvar roi=totalCost>0?(estimatedValue\/totalCost)*100:0;\nreturn {totalCost:totalCost,totalImpressions:totalImpressions,estimatedConversions:estimatedConversions,estimatedValue:estimatedValue,roi:roi};\n}\nvar root=document.getElementById('omgroi');\nif(!root||root.getAttribute('data-ready'))return;\nroot.setAttribute('data-ready','1');\nfunction $(id){return document.getElementById(id);}\nvar nf=new Intl.NumberFormat('en-US');\nfunction rand(v){return 'R'+v.toLocaleString('en-US',{minimumFractionDigits:v%1?2:0,maximumFractionDigits:2});}\nfunction positive(el){var v=parseFloat(el.value);return isFinite(v)&&v>0?v:0;}\nfunction text(id){return $(id).value.replace(\/^\\s+|\\s+$\/g,'');}\nvar productEl=$('or-product'),spendEl=$('or-spend'),costEl=$('or-cost'),qtyEl=$('or-qty'),rankEl=$('or-rank');\nvar configured=!!(CFG.xnQsjsdp&&CFG.xmIwtLD);\nvar unlocked=false;\ntry{unlocked=localStorage.getItem('omgroi_unlocked')==='1';}catch(e){}\nPRODUCTS.forEach(function(p,i){productEl.add(new Option(p.name,i));});\nSPEND.forEach(function(s,i){spendEl.add(new Option(s.label,i));});\nproductEl.value=18;\nspendEl.value=0;\nvar MAX=Math.max.apply(null,PRODUCTS.map(function(p){return p.impressions||0;}));\nPRODUCTS.map(function(p,i){return {p:p,i:i};}).sort(function(a,b){return (b.p.impressions===null?-1:b.p.impressions)-(a.p.impressions===null?-1:a.p.impressions);}).forEach(function(o){\nvar p=o.p,li=document.createElement('li'),b=document.createElement('button');\nb.type='button';b.className='or-row';b.setAttribute('data-i',o.i);\nvar name=document.createElement('span');name.className='or-name';name.textContent=p.name;\nvar track=document.createElement('span');track.className='or-track';\nvar fill=document.createElement('span');fill.className='or-fill';fill.style.width=(p.impressions?(p.impressions\/MAX)*100:0)+'%';\ntrack.appendChild(fill);\nvar num=document.createElement('span');num.className='or-num';num.textContent=p.impressions!==null?nf.format(p.impressions):'Not provided by ASI';\nvar small=document.createElement('small');small.textContent=Math.round(p.conversion*100)+'% more likely to do business';\nnum.appendChild(small);\nb.appendChild(name);b.appendChild(track);b.appendChild(num);\nb.addEventListener('click',function(){productEl.value=o.i;render();});\nli.appendChild(b);rankEl.appendChild(li);\n});\nfunction current(){\nvar p=PRODUCTS[+productEl.value],spend=SPEND[+spendEl.value],cost=positive(costEl),qty=Math.floor(positive(qtyEl));\nreturn {p:p,spend:spend,cost:cost,qty:qty,r:calc(cost,qty,p,spend.mid)};\n}\nfunction tip(label,str,warn){var d=document.createElement('p');d.className='or-tip'+(warn?' or-warn':'');var b=document.createElement('strong');b.textContent=label+' ';d.appendChild(b);d.appendChild(document.createTextNode(str));return d;}\nfunction pick(list,o,detail){\nvar li=document.createElement('li');li.className='or-pick';\nvar t=document.createElement('span');t.className='or-pick-t';\nvar n=document.createElement('span');n.className='or-pick-n';n.textContent=o.p.name;\nvar d=document.createElement('span');d.className='or-pick-d';d.textContent=detail;\nt.appendChild(n);t.appendChild(d);\nvar b=document.createElement('button');b.type='button';b.className='or-try';b.textContent='Try it';b.setAttribute('aria-label','Try '+o.p.name);\nb.addEventListener('click',function(){productEl.value=o.i;render();});\nli.appendChild(t);li.appendChild(b);list.appendChild(li);\n}\nfunction cents(v){return Math.floor(v*100)\/100;}\n\/\/ Rule-based recommendations. In this model ROI is roughly likelihood x spend \/ cost per item, so quantity does not move it.\nvar recKey='';\nfunction recommend(c){\nvar p=c.p,r=c.r,pct=Math.round(p.conversion*100),cur=p.impressions;\nvar key=[productEl.value,spendEl.value,c.cost,c.qty].join('|');\nif(key===recKey)return;\nrecKey=key;\nvar adv=$('or-advice'),roiL=$('or-alt-roi'),visL=$('or-alt-vis');\nadv.textContent='';roiL.textContent='';visL.textContent='';\nvar all=PRODUCTS.map(function(x,i){return {p:x,i:i};});\nif(c.cost<=0||c.qty<=0){adv.appendChild(tip('Add your order.','Enter a cost per item and a quantity to see budget advice.'));}\nelse{\nvar be=rand(Math.round(p.conversion*c.spend.mid));\nif(r.roi<100)adv.appendChild(tip('Budget:','At '+rand(c.cost)+' per item, the estimated value is below what you spend. With this product and customer spend, the order breaks even at about '+be+' per item. Look for a lower-priced item, or try one of the products listed here for a better return.',true));\nelse adv.appendChild(tip('Budget:','Your estimated value covers your spend. This product breaks even at about '+be+' per item, so there is room in the budget for a better-quality item that people keep and use for longer.'));\nadv.appendChild(tip('Quantity:','The ROI percentage stays about the same at any quantity. Quantity changes your reach: every 10 extra items add '+(cur!==null?nf.format(cur*10)+' lifetime impressions and ':'')+'about '+Math.round(p.conversion*10)+' estimated leads, for '+rand(c.cost*10)+' more.'));\n}\nvar better=all.filter(function(o){return o.p.conversion>p.conversion;}).sort(function(a,b){return b.p.conversion-a.p.conversion;}).slice(0,3);\n$('or-alt-roi-note').textContent=better.length?'Products with a higher ASI business likelihood than '+p.name+' ('+pct+'%).':p.name+' already has the highest ASI business likelihood of any product.';\nbetter.forEach(function(o){\nvar d=Math.round(o.p.conversion*100)+'% more likely to do business.';\nif(c.cost>0)d+=' Gives a better return than your current choice if it costs under about '+rand(cents(c.cost*o.p.conversion\/p.conversion))+' per item.';\npick(roiL,o,d);\n});\nvar more=all.filter(function(o){return o.p.impressions!==null&&(cur===null||o.p.impressions>cur);}).sort(function(a,b){return b.p.impressions-a.p.impressions;}).slice(0,3);\n$('or-alt-vis-note').textContent=cur===null?'ASI gives no impression figure for '+p.name+'. These products have the highest lifetime impressions per item.':(more.length?'Products seen more often over their lifetime than '+p.name+' ('+nf.format(cur)+' impressions per item).':p.name+' already has the highest lifetime impressions of any product.');\nmore.forEach(function(o){\nvar d=nf.format(o.p.impressions)+' lifetime impressions per item'+(cur?', '+(o.p.impressions\/cur).toFixed(1)+' times your current choice.':'.');\nif(cur&&c.cost>0)d+=' Costs less per impression if under about '+rand(cents(c.cost*o.p.impressions\/cur))+' per item.';\npick(visL,o,d);\n});\n}\nfunction render(){\nvar c=current(),p=c.p,r=c.r,pct=Math.round(p.conversion*100);\n$('or-product-hint').textContent=(p.impressions!==null?nf.format(p.impressions)+' lifetime impressions per item':'Lifetime impressions not provided by ASI')+', '+pct+'% more likely to do business.';\n$('or-spend-hint').textContent='The calculator uses the midpoint of the range: '+rand(c.spend.mid)+'.';\nArray.prototype.forEach.call(rankEl.querySelectorAll('.or-row'),function(b){b.setAttribute('aria-pressed',String(b.getAttribute('data-i')===String(productEl.value)));});\n$('or-locked').hidden=unlocked;\n$('or-open').hidden=!unlocked;\n$('or-recs').hidden=!unlocked;\nif(!unlocked)return;\nvar big=$('or-imp');\nif(r.totalImpressions===null){\nbig.textContent='Not provided by ASI';big.classList.add('or-none');\n$('or-imp-note').textContent='ASI does not publish a lifetime impression figure for food gifts. Leads, value and ROI still calculate.';\n}else{\nbig.textContent=nf.format(r.totalImpressions);big.classList.remove('or-none');\nvar cpi=r.totalImpressions>0?' That works out to R'+(r.totalCost\/r.totalImpressions).toFixed(4)+' per impression.':'';\n$('or-imp-note').textContent=nf.format(c.qty)+' items at '+nf.format(p.impressions)+' lifetime impressions each. The estimated number of times your branded product may be seen over its lifetime, based on ASI research.'+cpi;\n}\n$('or-r-cost').textContent=rand(r.totalCost);\n$('or-r-leads').textContent=nf.format(r.estimatedConversions);\n$('or-r-leads-cap').textContent=pct+'% of consumers said they would be more likely to do business with an advertiser who gave them this product. A benchmark, not a guaranteed conversion rate.';\n$('or-r-value').textContent=rand(r.estimatedValue);\n$('or-r-value-cap').textContent='Estimated leads multiplied by '+rand(c.spend.mid)+' average spend. It is not guaranteed revenue.';\n$('or-r-roi').textContent=nf.format(Math.round(r.roi))+'%';\nrecommend(c);\n}\nfunction sendLead(d){\nif(!configured)return;\nvar c=current(),r=c.r;\nvar summary=['Source: Branding ROI Calculator','Product: '+c.p.name,'Quantity: '+c.qty,'Cost per item: '+rand(c.cost),'Average spend: '+c.spend.label+' (midpoint '+rand(c.spend.mid)+')','Total cost: '+rand(r.totalCost),'Estimated lifetime impressions: '+(r.totalImpressions===null?'Not provided by ASI':nf.format(r.totalImpressions)),'Estimated leads: '+r.estimatedConversions,'Estimated value: '+rand(r.estimatedValue),'ROI: '+Math.round(r.roi)+'%'].join(' | ');\nvar data={xnQsjsdp:CFG.xnQsjsdp,xmIwtLD:CFG.xmIwtLD,actionType:'TGVhZHM=',returnURL:CFG.returnURL,'First Name':d.first,'Last Name':d.last,'Email':d.email,'Company':d.company,'Phone':d.phone,'Lead Source':CFG.leadSource,'Description':summary};\nfor(var k in CFG.extra){if(Object.prototype.hasOwnProperty.call(CFG.extra,k))data[k]=CFG.extra[k];}\nvar f=document.createElement('form');\nf.method='POST';f.action=CFG.action;f.target='omgroi-sink';f.acceptCharset='UTF-8';f.style.display='none';\nfor(var n in data){if(Object.prototype.hasOwnProperty.call(data,n)){var i=document.createElement('input');i.type='hidden';i.name=n;i.value=data[n];f.appendChild(i);}}\ndocument.body.appendChild(f);f.submit();\nsetTimeout(function(){if(f.parentNode)f.parentNode.removeChild(f);},4000);\n}\nif(CFG.privacyUrl){\nvar a=document.createElement('a');a.href=CFG.privacyUrl;a.target='_blank';a.rel='noopener';a.textContent='Privacy policy';\n$('or-consent-text').appendChild(document.createTextNode(' '));$('or-consent-text').appendChild(a);\n}\n$('or-setup').hidden=configured;\n$('or-gate').addEventListener('submit',function(e){\ne.preventDefault();\nvar d={first:text('or-first'),last:text('or-last'),email:text('or-email'),company:text('or-company'),phone:text('or-phone')};\nvar err='';\nif(!d.first||!d.last||!d.company||!d.phone)err='Fill in every field to see your results.';\nelse if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(d.email))err='Enter a valid email address, like name@company.co.za.';\nelse if(!$('or-consent').checked)err='Tick the box so we can contact you about your results.';\nvar errEl=$('or-err');\nif(err){errEl.textContent=err;errEl.hidden=false;return;}\nerrEl.hidden=true;\nsendLead(d);\nunlocked=true;\n$('or-thanks').hidden=false;\ntry{if(configured)localStorage.setItem('omgroi_unlocked','1');}catch(e2){}\nrender();\n});\n[productEl,spendEl,costEl,qtyEl].forEach(function(el){el.addEventListener('input',render);el.addEventListener('change',render);});\nrender();\n})();\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Visibility &nbsp;&bull;&nbsp; Usability &nbsp;&bull;&nbsp; Brand value What is your branded merchandise worth? Pick a product and enter your order to estimate the lifetime impressions, leads and value it could generate. Every benchmark comes from ASI consumer research. Product type Cost per item (R) Quantity Average spend per customer (R) These are example figures. Change any [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-576","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/pages\/576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/comments?post=576"}],"version-history":[{"count":2,"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/pages\/576\/revisions"}],"predecessor-version":[{"id":578,"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/pages\/576\/revisions\/578"}],"wp:attachment":[{"href":"https:\/\/omgiiegh.co.za\/branding\/wp-json\/wp\/v2\/media?parent=576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}