Funnel exploration

퍼널 탐색

Compare stage retention and drop-off to find bottlenecks.

···
html
<div class="funnel"><div class="heading">VISIT → PURCHASE <b id="drop">92% DROP</b></div><div class="steps"><div><label>VISIT <b>100</b></label><i style="--size:100%"></i></div><div><label>VIEW <b>62</b></label><i style="--size:62%"></i></div><div><label>CART <b>25</b></label><i style="--size:25%"></i></div><div><label>BUY <b>8</b></label><i style="--size:8%"></i></div></div></div>
css
.funnel{width:min(85%,570px);font:900 clamp(10px,max(2vmin,1vw),15px)/1.2 sans-serif}.heading{display:flex;justify-content:space-between;gap:8px;padding-bottom:clamp(8px,2vmin,18px);border-bottom:2px solid var(--fg);letter-spacing:.08em}.heading b{color:var(--accent)}.steps{display:grid;gap:clamp(7px,1.7vmin,13px);margin-top:clamp(8px,2vmin,17px)}.steps label{display:flex;justify-content:space-between;width:var(--size);min-width:64px;color:var(--muted);font-size:clamp(10px,max(1.8vmin,1vw),13px)}.steps label b{color:var(--fg)}.steps i{display:block;width:0;height:clamp(10px,2.7vmin,22px);background:var(--accent);transition:width .7s ease}.steps>div:nth-child(2) i{background:var(--accent-2)}.steps>div:nth-child(3) i{background:var(--accent-3)}.steps>div:nth-child(4) i{background:var(--fg)}
js
const bars=[...document.querySelectorAll('.steps i')];let stage=0;function render(){bars.forEach((b,i)=>b.style.width=i<=stage?b.style.getPropertyValue('--size'):'0');document.querySelector('#drop').textContent=(stage===0?0:stage===1?38:stage===2?75:92)+'% DROP'}function next(){stage=(stage+1)%4;render();setTimeout(next,stage===3?2600:350)}render();setTimeout(next,250);

Funnel exploration counts people progressing through a defined sequence from visit to purchase. Drop-off interpretation depends on the denominator chosen at each step.

The demo unfolds an example where 100 visit, 62 view a product, 25 add to cart, and 8 purchase. Investigate the sharpest decline first.

Stage counts alone cannot explain why people leave. Segment by source, device, or new versus returning users and pair the chart with journey observation.

When to use

Use it to prioritize a step in a sign-up or checkout journey.

Open as page ↗