The funnel is a core marketing concepts which visualizes the gradual conversion of a consumer. On a macro level, this is typically illustrated as a holistic user journey. The model can be applied to nearly any marketing platform however on a micro level.

Like any concept, the funnel model is not perfect:

  • Consumers can come from a variety of sources and have many different “journeys.”
  • It’s very difficult to accurately track a consumer. Adblockers, using multiple computers, consent management solution blocking, etc.
  • It does nothing to explain “why?”

End of the day? The funnel model is a great way to conceptualize where you are “leaking” or “churning” out consumers. It’s fairly easy to visualize as well.

Python Code

Plotly Funnel Diagram

import plotly.express as px
import pandas as pd

stages = ["Media", "Site Visits", "Hot Leads", "Conversion", "Loyalty"]
df_org = pd.DataFrame(dict(number=[1000, 200, 50, 11, 3], stage=stages))
df_org['source'] = 'Organic'

df_direct = pd.DataFrame(dict(number=[520, 360, 20, 15, 30], stage=stages))
df_direct['source'] = 'Direct'

df_paid = pd.DataFrame(dict(number=[52, 36, 20, 15, 30], stage=stages))
df_paid['source'] = 'Paid'

df = pd.concat([df_org, df_direct, df_paid], axis=0)
fig = px.funnel(df, x='number', y='stage', color='source')