<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>ROI calculator · flow</title><style>@font-face{font-family:"STK Bureau Serif Variable Complete";src:url(https://cdn.prod.website-files.com/68ee0ef582e0631038583e04/6a85b5fbe174d6db1359e4af_STKBureauSerifVariableComplete.woff2) format("woff2");font-weight:150 700;font-style:normal;font-display:swap}</style><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Instrument+Sans:wght@400;500&display=swap" rel="stylesheet"><style>:root{--tp:#181818;--ts:#545352;--tt:#767473;--bd:#e8e7e6;--ac:#9eff78;--ok:#2ebd43;--oktx:#1d7a2e;--warn:#f08a24;--warntx:#9a4f0a;--risk:#d9453d;--vi:#6e3eff;--serif:"STK Bureau Serif Variable Complete","STK Bureau Serif",Georgia,serif;--ui:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--meta:"Instrument Sans",Inter,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--io:cubic-bezier(.65,0,.35,1)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{font-family:var(--ui);color:var(--tp);-webkit-font-smoothing:antialiased}#bg{position:fixed;inset:0;background-repeat:no-repeat;background-size:cover}#bg::after{content:"";position:absolute;inset:0}#stage{position:absolute;left:50%;top:50%;transform-origin:center}[data-a]{opacity:0}.play [data-a]{animation-duration:calc(var(--t,550) * 1ms);animation-delay:calc(var(--d,0) * 1ms);animation-fill-mode:both;animation-timing-function:var(--ease);animation-iteration-count:1}.play [data-a=rise]{animation-name:rise}.play [data-a=fade]{animation-name:fade}.play [data-a=pop]{animation-name:pop}@keyframes rise{from{opacity:0;translate:0 calc(var(--y,10) * 1px)}to{opacity:1}}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes pop{from{opacity:0;scale:var(--sc,.92)}to{opacity:1}}.rv{opacity:0;translate:0 7px;transition:opacity .45s var(--ease),translate .55s var(--ease)}.rv.in{opacity:1;translate:0 0}.sw{display:inline-grid;vertical-align:top}.sw>*{grid-area:1/1;transition:opacity .3s var(--ease),translate .4s var(--ease)}.sw>.s1{opacity:0;translate:0 6px}.sw.on>.s0{opacity:0;translate:0 -6px}.sw.on>.s1{opacity:1;translate:0 0}#cur{position:absolute;left:0;top:0;width:22px;height:30px;z-index:50;pointer-events:none;opacity:0;transition:transform 850ms var(--io),opacity 300ms ease}#cur.on{opacity:1}#cur svg{width:20px;display:block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));transform-origin:3px 3px;transition:transform 140ms var(--ease)}#cur.down svg{transform:scale(.86)}.ic{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.lg{flex:none;width:32px;height:32px;border-radius:9px;background:#fff;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(0,0,0,.07)}.lg svg{width:17px;height:17px;display:block}.lg.ico{color:#fff;box-shadow:none}.lg.sm{width:20px;height:20px;border-radius:6px}.lg.sm svg{width:12px;height:12px}.lg.sm .ic{width:11px;height:11px}.st{flex:none;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font:500 12px/1 var(--meta);white-space:nowrap;background:#f1f0ef;color:var(--ts)}.st i{flex:none;width:7px;height:7px;border-radius:50%;background:currentColor}.card{position:relative;border-radius:14px;padding:16px 18px;--c1:#181818;--c2:#545352;--c3:#767473;--ln:#ebeae9;--chip:#f1f0ef;color:var(--c1)}.k-white{background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 40px rgba(16,24,48,.2)}.mt{display:flex;align-items:center;gap:8px;font:400 12.5px/16px var(--meta);color:var(--c3);white-space:nowrap}.tg{padding:3px 9px;border-radius:99px;background:var(--chip);color:var(--c2);font-weight:500}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}[data-a]{opacity:1}#cur{display:none}}html,body{background:#e9a58f}#bg{background-image:url("https://cdn.prod.website-files.com/68ee0ef582e0631038583e04/6abfb2c0a5552aefc231695e_background.jpg");background-position:55% 40%}#bg::after{background:linear-gradient(180deg,rgba(8,12,30,0.0),rgba(8,12,30,0.14))}#stage>*{position:absolute}.hd{height:30px;display:flex;align-items:center;justify-content:center;padding:0 14px;border-radius:11px;background:rgba(22,30,58,.3);border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;font:500 11px/1 var(--meta);letter-spacing:.66px;text-transform:uppercase;white-space:nowrap}.col{display:flex;flex-direction:column;justify-content:center;gap:10px}.ip{position:relative;height:58px;display:flex;align-items:center;gap:12px;padding:0 12px;border-radius:12px;white-space:nowrap}.ip .pt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ip .pt b{font-size:14px;line-height:18px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.ip .pt small{font:400 11.5px/14px var(--meta);opacity:.72;overflow:hidden;text-overflow:ellipsis}.ip .ps{display:none;font-size:12.5px;font-weight:500}.P-glass .ip{background:linear-gradient(90deg,rgba(255,255,255,.2),rgba(255,255,255,.08)),rgba(18,26,56,.2);border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 5px 12px rgba(16,24,48,.08);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.12)}.node{padding:18px 20px;border-radius:16px;color:#fff;background:rgba(18,16,28,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.16);box-shadow:0 22px 50px rgba(10,10,30,.3);display:flex;flex-direction:column;gap:14px}.nh{display:flex;align-items:center;gap:12px}.cobl-mark{flex:none;width:36px;height:36px;display:block}.nl{font-family:var(--serif);font-size:19px;line-height:23px}.nst{margin-top:4px;display:flex;align-items:center;gap:7px;font:500 12px/14px var(--meta);color:var(--ac);white-space:nowrap}.nst i{width:7px;height:7px;border-radius:50%;background:var(--ac);animation:pulse 1.4s ease-in-out infinite}.node.done .nst i{animation:none}@keyframes pulse{50%{opacity:.3}}.nk{display:flex;flex-direction:column;gap:9px;padding-top:13px;border-top:1px solid rgba(255,255,255,.12)}.ck{display:flex;align-items:center;gap:9px;font-size:13.5px;line-height:18px;color:rgba(255,255,255,.5);white-space:nowrap;transition:color .4s var(--ease)}.ck>i{flex:none;width:17px;height:17px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);display:grid;place-items:center;transition:background-color .3s var(--ease),border-color .3s var(--ease)}.ck>i svg{width:10px;height:10px;opacity:0;transition:opacity .2s}.ck.on{color:rgba(255,255,255,.94)}.ck.on>i{background:var(--ac);border-color:var(--ac)}.ck.on>i svg{opacity:1}.wr{left:0;top:0;width:1px;height:1px;pointer-events:none;overflow:visible}.wr svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible}.w{fill:none;stroke:#fff;stroke-width:1.5;stroke-linecap:round;opacity:.85}.fd{position:absolute;left:0;top:0;width:10px;height:10px;offset-anchor:50% 50%;offset-rotate:0deg;border-radius:50%;background:var(--ac);border:2px solid #181818;opacity:0}.play .fd{animation:flow 3000ms cubic-bezier(.45,0,.25,1) calc(740ms + var(--dl)) infinite both}@keyframes flow{0%{offset-distance:0%;opacity:0}3%{opacity:1}22%{opacity:1}26%,100%{offset-distance:100%;opacity:0}}.wl{translate:-50% -50%;padding:0 8px;border-radius:99px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#2b2b2b;font:500 11.5px/20px var(--ui);white-space:nowrap;z-index:2}.cout{gap:14px}@media (prefers-reduced-motion:reduce){.fd{opacity:1;offset-distance:55%}}.L-w .hd{top:36px}.L-w .h1,.L-w .cin{left:75px;width:290px}.L-w .h2,.L-w .cmid{left:495px;width:300px}.L-w .h3,.L-w .cout{left:925px;width:360px}.L-w .col{top:76px;height:320px}.L-m .hd{top:28px}.L-m .h1,.L-m .cin{left:14px;width:184px}.L-m .h2,.L-m .cmid{left:218px;width:228px}.L-m .h3,.L-m .cout{left:466px;width:340px}.L-m .col{top:70px;height:386px}.L-m .wl{display:none}.L-m .ip{height:52px;gap:10px;padding:0 10px}.L-m .ip .pt b{font-size:13px}.L-m .ip .st{display:none}.L-m .node{padding:16px 17px}.L-m .nl{font-size:17px;line-height:21px}.L-m .ck{font-size:12.5px}.L-c #stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px}.L-c #stage>.col{position:relative;left:auto;top:auto;height:auto}.L-c .hd,.L-c .wl,.L-c .ip .st,.L-c .ip .pt{display:none}.L-c .ip .ps{display:block}.L-c .cin{flex-direction:row;gap:8px;width:404px;justify-content:center}.L-c .ip{height:38px;gap:7px;padding:0 11px 0 6px;border-radius:10px}.L-c .ip .lg{width:26px;height:26px;border-radius:7px}.L-c .ip .lg svg{width:14px;height:14px}.L-c .cmid{width:330px}.L-c .node{padding:13px 16px;gap:10px}.L-c .nk{display:none}.L-c .nl{font-size:17px;line-height:21px}.L-c .cobl-mark{width:30px;height:30px}.L-c .cout{width:330px}.src{display:inline-flex;align-items:center;gap:7px;padding:3px 11px 3px 3px;border-radius:99px;background:var(--chip);font:500 12px/16px var(--meta);color:var(--c2);white-space:nowrap}.kp .kg{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:8px;margin-top:12px}.kp .kt{padding:10px 12px;border-radius:10px;background:var(--chip)}.kp .kv{font-family:var(--serif);font-size:27px;line-height:31px;white-space:nowrap}.kp .kv b{font-weight:400}.kp .kl{font:400 12px/15px var(--meta);color:var(--c3);margin-top:2px;white-space:nowrap}.kp .src{margin-top:12px}</style></head><body class="P-glass"><div id="bg" aria-hidden="true"></div><div id="stage" role="img" aria-label="Cobl reads the figures Helix shared on a call, in an email and in your pricing, and calculates a 3-year ROI of 3.1x, a payback of 7 months and a full cost of 412k euros."><span class="hd h1" data-a="fade" data-d="0">What Cobl reads</span><span class="hd h2" data-a="fade" data-d="80">What Cobl calculates</span><span class="hd h3" data-a="fade" data-d="160">What you get</span><div class="wr" aria-hidden="true" data-a="fade" data-d="590" data-t="500"><svg></svg><div class="dots"></div></div><div class="col cin" aria-hidden="true"><div class="ip" data-a="rise" data-d="100"><span class="lg ico " style="background:#6e3eff"><svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="m16 13 5.2 3.5a.5.5 0 0 0 .8-.4V7.9a.5.5 0 0 0-.8-.4L16 11"/><rect x="2" y="6" width="14" height="12" rx="2"/></svg></span><span class="pt"><b>Call with Tom R.</b></span><span class="ps">Call</span><span class="st "><i></i>80 FTE</span></div><div class="ip" data-a="rise" data-d="220"><span class="lg "><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="#EA4335" d="M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z"/></svg></span><span class="pt"><b>Re: volumes 2026</b></span><span class="ps">Email</span><span class="st "><i></i>2 sites</span></div><div class="ip" data-a="rise" data-d="340"><span class="lg "><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="#34A853" d="M11.318 12.545H7.91v-1.909h3.41v1.91zM14.728 0v6h6l-6-6zm1.363 10.636h-3.41v1.91h3.41v-1.91zm0 3.273h-3.41v1.91h3.41v-1.91zM20.727 6.5v15.864c0 .904-.732 1.636-1.636 1.636H4.909a1.636 1.636 0 0 1-1.636-1.636V1.636C3.273.732 4.005 0 4.909 0h9.318v6.5h6.5zm-3.273 2.773H6.545v7.909h10.91v-7.91zm-6.136 4.636H7.910v1.91h3.410v-1.91z"/></svg></span><span class="pt"><b>Pricing grid</b></span><span class="ps">Pricing</span><span class="st "><i></i>2026</span></div></div><div class="col cmid" aria-hidden="true"><div class="node" data-a="pop" data-d="520"><div class="nh"><svg class="cobl-mark" aria-hidden="true" viewBox="3 3 31 32" fill="none"><g clip-path="url(#cc1)"><mask id="cm1" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="31" height="32"><path d="M18.7946 3.89411C27.149 3.89411 33.9214 10.6667 33.9215 19.0211C33.9215 27.3756 27.1491 34.148 18.7946 34.148C10.4401 34.1479 3.6676 27.3755 3.6676 19.0211C3.66772 10.6667 10.4402 3.89423 18.7946 3.89411ZM24.0895 18.5455C21.9817 18.5455 20.2733 20.2542 20.2731 22.3619C20.2731 24.4698 21.9816 26.1793 24.0895 26.1793C26.1973 26.1792 27.9059 24.4698 27.9059 22.3619C27.9056 20.2542 26.1972 18.5455 24.0895 18.5455Z" fill="#D7D6D5"/></mask><g mask="url(#cm1)"><path d="M23.5704 1.17863L25.8687 43.3989" stroke="#0C0C0C" stroke-width=".9"/><path d="M38.3215 43.1413L11.1179 1.43636" stroke="#0C0C0C" stroke-width=".9"/><path d="M3.86743 35.8913L45.5724 8.6877" stroke="#0C0C0C" stroke-width=".9"/><path d="M23.8672 22.5342L20.4264 35.9259" stroke="#2D69FF" stroke-width="5.76"/><path d="M22.6978 1.05368L23.9048 23.227" stroke="#2D69FF" stroke-width="3.68"/><path d="M27.2203 22.2772L2.96823 23.5974" stroke="#F79797" stroke-width="6.94"/><path d="M25.6162 23.2476L3.13122 11.8482" stroke="#FF3131" stroke-width="6.45"/><path d="M23.3252 25.3431L32.4365 1.2181" stroke="#5934FF" stroke-width="2.98"/><path d="M37.6289 43.1794L10.4253 1.47442" stroke="#4AD35B" stroke-width="5.07"/><path d="M3.17432 35.929L44.8793 8.72543" stroke="#FFCB31" stroke-width="6.25"/></g></g><defs><clipPath id="cc1"><rect width="29.15" height="24.98" fill="white" transform="translate(3.73 3.51)"/></clipPath></defs></svg><div><p class="nl">ROI over 3 years</p><p class="nst"><i></i><span class="sw"><span class="s0">Calculating</span><span class="s1">Ready</span></span></p></div></div><div class="nk"><p class="ck"><i><svg viewBox="0 0 24 24" fill="none" stroke="#181818" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7"/></svg></i>12 assumptions sourced</p><p class="ck"><i><svg viewBox="0 0 24 24" fill="none" stroke="#181818" stroke-width="3.2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.5 4.5L19 7"/></svg></i>3 scenarios</p></div></div></div><div class="col cout" aria-hidden="true"><div class="card k-white kp" id="c1" data-a="pop" data-d="1910" data-t="600"><div class="mt"><span class="tg">Helix Logistics</span>Expected case</div><div class="kg" style="--n:3"><div class="kt rv"><p class="kv"><b>3.1x</b></p><p class="kl">ROI, 3 years</p></div><div class="kt rv"><p class="kv"><b data-count data-to="7" data-at="2410" data-dur="900">7</b> mo</p><p class="kl">payback</p></div><div class="kt rv"><p class="kv">€<b data-count data-to="412" data-at="2560" data-dur="900">412</b>k</p><p class="kl">full cost</p></div></div><div class="rv src"><span class="lg ico sm" style="background:#6e3eff"><svg class="ic" viewBox="0 0 24 24" aria-hidden="true"><path d="m16 13 5.2 3.5a.5.5 0 0 0 .8-.4V7.9a.5.5 0 0 0-.8-.4L16 11"/><rect x="2" y="6" width="14" height="12" rx="2"/></svg></span>Figures from Tom R. · Oct 21</div></div></div><span class="wl wl1" data-a="fade" data-d="840">Reads</span><span class="wl wl2" data-a="fade" data-d="840">Calculates</span></div><script>
(function(){
var st=document.getElementById('stage'),root=document.body;
var still=matchMedia('(prefers-reduced-motion: reduce)').matches;
var LAY=[["w",1000,2.6,1360,420],["m",560,0,820,470],["c",0,0,420,440]],TL=[[1390,".ck:nth-child(1)","on"],[1720,".ck:nth-child(2)","on"],[2110,"#c1 .kt:nth-child(1)","in"],[2260,"#c1 .kt:nth-child(2)","in"],[2360,".node","done"],[2360,".nst .sw","on"],[2410,"#c1 .kt:nth-child(3)","in"],[3410,"#c1 .src","in"]],END=null,k=1,lay=LAY[0];
[].forEach.call(document.querySelectorAll('[data-d],[data-t]'),function(e){if(e.dataset.d)e.style.setProperty('--d',e.dataset.d);if(e.dataset.t)e.style.setProperty('--t',e.dataset.t);});
function fit(){var w=innerWidth,h=innerHeight;
lay=LAY.filter(function(l){return w>=l[1]&&w/h>=l[2];})[0]||LAY[LAY.length-1];
LAY.forEach(function(l){root.classList.toggle('L-'+l[0],l===lay);});
st.style.width=lay[3]+'px';st.style.height=lay[4]+'px';
k=Math.min(w/lay[3],h/lay[4]);if(lay[5])k=Math.min(k,lay[5]);
st.style.transform='translate(-50%,-50%) scale('+k+')';wire();}
function box(el){var x=0,y=0,e=el;while(e&&e!==st){x+=e.offsetLeft;y+=e.offsetTop;e=e.offsetParent;}return{x:x,y:y,w:el.offsetWidth,h:el.offsetHeight};}
function P(a,b,c,d){return 'M'+a+' C'+b+' '+c+' '+d;}
function wire(){var r=st.querySelector('.wr');if(!r)return;
var c=lay[0]==='c',ins=st.querySelectorAll('.cin>.ip'),nd=st.querySelector('.node'),outs=st.querySelectorAll('.cout>*'),ws=[],n=box(nd);
[].forEach.call(ins,function(el,i){var b=box(el),a,z,m,o=i-(ins.length-1)/2;
if(c){a=[b.x+b.w/2,b.y+b.h];z=[n.x+n.w/2+o*30,n.y];m=(a[1]+z[1])/2;ws.push([P(a,[a[0],m],[z[0],m],z),i*180]);}
else{a=[b.x+b.w,b.y+b.h/2];z=[n.x,n.y+n.h/2+o*8];m=(a[0]+z[0])/2;ws.push([P(a,[m,a[1]],[m,z[1]],z),i*180]);}});
[].forEach.call(outs,function(el,j){var b=box(el),a,z,m,o=(j-(outs.length-1)/2);
if(c){a=[n.x+n.w/2,n.y+n.h];z=[b.x+b.w/2,b.y];m=(a[1]+z[1])/2;ws.push([P(a,[a[0],m],[z[0],m],z),1050+j*160]);}
else{a=[n.x+n.w,n.y+n.h/2+o*10];z=[b.x,b.y+b.h/2];m=(a[0]+z[0])/2;ws.push([P(a,[m,a[1]],[m,z[1]],z),1050+j*160]);}});
r.querySelector('svg').innerHTML=ws.map(function(w){return '<path class="w" d="'+w[0]+'"/>';}).join('');
r.querySelector('.dots').innerHTML=ws.map(function(w){return '<i class="fd" style="offset-path:path(\''+w[0]+'\');--dl:'+w[1]+'ms"></i>';}).join('');
var l1=st.querySelector('.wl1'),l2=st.querySelector('.wl2'),ci=ins[0]?box(ins[0]):n;
if(l1){l1.style.left=(ci.x+ci.w+n.x)/2+'px';l1.style.top=(n.y+n.h/2-24)+'px';}
if(l2&&outs[0]){var o=box(outs[0]);l2.style.left=(n.x+n.w+o.x)/2+'px';l2.style.top=(n.y+n.h/2-24)+'px';}}
fit();addEventListener('resize',fit);if(document.fonts&&document.fonts.ready)document.fonts.ready.then(fit);
var timers=[];function later(f,t){timers.push(setTimeout(f,t));}
function act(e){var sel=e[1],c=e[2];
[].forEach.call(st.querySelectorAll(sel),function(el){c.split(' ').forEach(function(x){if(x[0]==='-')el.classList.remove(x.slice(1));else el.classList.add(x);});});}
function count(el){var to=+el.dataset.to,at=+(el.dataset.at||0),dur=+(el.dataset.dur||1000);if(still){el.textContent=to;return;}
el.textContent='0';later(function(){var t0=performance.now();(function step(now){var p=Math.min(1,(now-t0)/dur);p=1-Math.pow(1-p,3);el.textContent=Math.round(to*p);if(p<1)requestAnimationFrame(step);})(t0);},at);}
var started=false;
function play(){if(started)return;started=true;root.classList.add('play');
if(still){TL.forEach(function(e){if(e[1][0]!=='@')act(e);});[].forEach.call(document.querySelectorAll('[data-count]'),count);return;}
[].forEach.call(document.querySelectorAll('[data-count]'),count);
TL.forEach(function(e){later(function(){act(e);},e[0]);});}
if('IntersectionObserver' in window){new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting)play();});},{threshold:.3}).observe(document.body);}else play();
})();
</script></body></html>