6.7.22
Pantau drop-off per tahap dengan funnel chart
Funnel chart cocok untuk menunjukkan penyusutan dari masuk hingga konversi. Trapesium membuat jumlah tersisa terlihat lewat lebarnya.
import numpy as np
import matplotlib.pyplot as plt
steps = ["Kunjungan", "Lihat produk", "Masuk keranjang", "Info pembayaran", "Pembelian selesai"]
counts = np.array([12000, 5400, 2600, 1800, 1250])
max_width = counts[0]
fig, ax = plt.subplots(figsize=(6, 4))
y_positions = np.arange(len(steps), 0, -1)
for idx, (step, count) in enumerate(zip(steps, counts)):
width = count / max_width
left = 0.5 - width / 2
ax.fill_between(
[left, left + width],
[y_positions[idx]] * 2,
[y_positions[idx] - 0.8] * 2,
color=plt.cm.Blues(0.3 + idx * 0.12),
)
ax.text(
0.5,
y_positions[idx] - 0.4,
f"{step}\n{count:,}",
ha="center",
va="center",
color="white",
fontsize=11,
)
ax.set_xlim(0, 1)
ax.set_ylim(0, len(steps) + 0.5)
ax.axis("off")
ax.set_title("Drop-off funnel pembelian e-commerce")
conversion = counts[-1] / counts[0]
ax.text(0.02, 0.3, f"CVR: {conversion:.1%}", fontsize=11, fontweight="bold")
fig.tight_layout()
plt.show()

Kiat membaca #
- Lebar tiap tahap menunjukkan jumlah pengguna tersisa; gap besar adalah bottleneck.
- Tampilkan CVR dari atas ke bawah agar dampaknya jelas.
- Ganti nama tahap sesuai alur produk Anda agar mudah dipakai ulang.