Menu

Data Visualization

Learn Data Visualization for Marketing Analyst for free: roadmap, examples, subskills, and a skill exam.

Published: December 22, 2025 | Updated: December 22, 2025

Why Data Visualization matters for Marketing Analysts

Data Visualization turns marketing data into decisions. As a Marketing Analyst, clear visuals help you: spot trends early, compare channels fairly, diagnose funnel drop-offs, communicate results to non-technical stakeholders, and prioritize actions that drive ROI.

  • Answer pacing questions fast (Are we on track vs last week or vs target?).
  • Compare performance across channels, campaigns, or audiences.
  • Show where users drop in funnels and where to fix friction.
  • Explain what drives a KPI change with simple, annotated visuals.

Who this is for

  • Marketing Analysts and growth professionals who need to present insights clearly.
  • Junior analysts building dashboards and campaign readouts.
  • Anyone migrating reports from spreadsheets into dashboards.

Prerequisites

  • Comfort with basic metrics (impressions, clicks, CTR, CPC, CPA, CVR, ROAS).
  • Basic spreadsheet skills (filters, pivot tables) or beginner SQL.
  • Familiarity with at least one charting tool (spreadsheets, BI tools, or Python).

Learning path (practical roadmap)

  1. Milestone 1 β€” Choose the right chart for the question

    Map common marketing questions to chart types. For example: trend over time β†’ line with 7-day moving average; channel comparison β†’ bars; relationship between spend and conversions β†’ scatter.

  2. Milestone 2 β€” Time series done right

    Use consistent date granularity, rolling averages to smooth seasonality, and add benchmarks (targets or last period) for context.

  3. Milestone 3 β€” Fair channel comparisons

    Normalize with rates (CPA, ROAS, CVR). Sort bars, annotate outliers, and avoid dual axes unless absolutely necessary.

  4. Milestone 4 β€” Funnels and cohorts

    Create clear funnel visuals for step-by-step drop-offs and heatmaps for cohort retention or repeat purchase behavior.

  5. Milestone 5 β€” Clear labels, callouts, and storytelling

    Add titles that state the insight, not just the metric. Label axes and units, add a goal line, and highlight the one thing to remember.

  6. Milestone 6 β€” Avoid misleading visuals

    Start bar chart axes at zero, keep proportions honest, and use consistent scales. Always show denominators for rates.

Worked examples (marketing-focused)

1) Time series with a 7-day moving average and a target line

Goal: Show daily sessions with trend and target sessions/day.

-- SQL example (PostgreSQL)
WITH daily AS (
  SELECT
    date_trunc('day', occurred_at)::date AS day,
    COUNT(*) AS sessions
  FROM analytics.sessions
  GROUP BY 1
)
SELECT
  day,
  sessions,
  AVG(sessions) OVER (
    ORDER BY day ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
  ) AS sessions_ma7,
  5000 AS target_sessions
FROM daily
ORDER BY day;

Plot lines: sessions (light), 7-day MA (bold), and a horizontal target line at 5,000. Add a note if MA crosses the target.

2) Channel comparison with normalized metrics

Goal: Compare CPA across channels fairly.

-- Aggregate spend and conversions per channel
SELECT
  channel,
  SUM(spend) AS spend,
  SUM(conversions) AS conv,
  CASE WHEN SUM(conversions) > 0 THEN SUM(spend)::numeric / SUM(conversions) ELSE NULL END AS cpa
FROM marketing.performance
WHERE date >= current_date - INTERVAL '30 days'
GROUP BY channel
ORDER BY cpa ASC NULLS LAST;

Chart: Sorted bars by CPA (lower is better). Annotate any channel that beats target CPA by 20%+.

3) Funnel and drop-off visualization

Goal: Show where users drop between steps: Landing β†’ Product View β†’ Add to Cart β†’ Purchase.

-- Counts per step (example structure)
WITH steps AS (
  SELECT 'Landing' AS step, COUNT(DISTINCT session_id) AS users FROM events WHERE name = 'landing' UNION ALL
  SELECT 'Product', COUNT(DISTINCT session_id) FROM events WHERE name = 'product_view' UNION ALL
  SELECT 'Add to Cart', COUNT(DISTINCT session_id) FROM events WHERE name = 'add_to_cart' UNION ALL
  SELECT 'Purchase', COUNT(DISTINCT session_id) FROM events WHERE name = 'purchase'
)
SELECT * FROM steps;

Chart: Funnel bars (horizontal). Label each step with conversion to next step and drop-off percentage. Add a note where drop-off is highest.

4) Cohort heatmap for repeat purchase

Goal: For monthly signup cohorts, show percent who purchased again in month 1, 2, 3…

-- Outline for cohort retention (counts-to-rates)
WITH first_purchase AS (
  SELECT user_id, date_trunc('month', MIN(purchase_at)) AS cohort_month
  FROM sales
  GROUP BY 1
), purchases AS (
  SELECT s.user_id,
         date_trunc('month', s.purchase_at) AS purchase_month
  FROM sales s
)
SELECT
  f.cohort_month,
  DATE_PART('month', AGE(p.purchase_month, f.cohort_month)) AS months_since,
  COUNT(DISTINCT p.user_id) * 100.0 / NULLIF(COUNT(DISTINCT f.user_id) OVER (PARTITION BY f.cohort_month), 0) AS retention_pct
FROM first_purchase f
JOIN purchases p ON p.user_id = f.user_id
GROUP BY 1, 2
ORDER BY 1, 2;

Pivot months_since across columns, color from light (low) to dark (high). Keep one color family for clarity.

5) Highlight key drivers of CPA change

Goal: Explain why CPA rose week-over-week. Decompose by channel.

-- Driver view
WITH w AS (
  SELECT channel,
         SUM(CASE WHEN week = current_date - INTERVAL '14 days' THEN spend END) AS spend_w1,
         SUM(CASE WHEN week = current_date - INTERVAL '7 days' THEN spend END)  AS spend_w2,
         SUM(CASE WHEN week = current_date - INTERVAL '14 days' THEN conv END)  AS conv_w1,
         SUM(CASE WHEN week = current_date - INTERVAL '7 days' THEN conv END)   AS conv_w2
  FROM weekly_perf
  GROUP BY channel
)
SELECT channel,
       spend_w1, conv_w1, (spend_w1/NULLIF(conv_w1,0)) AS cpa_w1,
       spend_w2, conv_w2, (spend_w2/NULLIF(conv_w2,0)) AS cpa_w2,
       (spend_w2/NULLIF(conv_w2,0)) - (spend_w1/NULLIF(conv_w1,0)) AS delta_cpa
FROM w
ORDER BY ABS(delta_cpa) DESC;

Chart: Bars of delta CPA by channel (positive/negative). Add annotations on top two drivers.

Quick chart chooser (by marketing question)

Are we trending up or down vs last week?

Use a line chart with daily granularity and a 7-day moving average. Add a faint last-week band or a target line.

Which channels have the lowest CPA?

Use a sorted bar chart of CPA by channel. Add labels for CPA and error bars if sample sizes vary a lot.

Is spend linearly related to conversions across channels?

Use a scatter plot (x = spend, y = conversions), label outliers, and optionally add a trend line.

Where do users drop most in the purchase flow?

Use a funnel chart with step-to-step conversion and drop-off labels.

Do cohorts retain or repurchase over time?

Use a cohort heatmap with a single-hue color scale from 0–100%.

Drills and exercises

  • Build a 30-day sessions line chart with a 7-day moving average and a target line. Add an insight in the title.
  • Create a bar chart of CPA by channel, sorted ascending. Flag any channel 20% better than target.
  • Make a funnel from Landing to Purchase with conversion and drop-off labels for each step.
  • Produce a cohort heatmap for monthly signups showing 3-month repeat purchase rates.
  • Build a scatter of spend vs conversions, annotate two outliers, and state one hypothesis.

Common mistakes and debugging tips

  • Truncated axes on bar charts: Start at zero to avoid exaggerating differences.
  • Uneven time buckets: Don’t compare a 3-day partial week to a full week without labels.
  • Dual axes confusion: Prefer normalized metrics or small multiples instead.
  • Ambiguous labels: Always include units, date ranges, and definitions (e.g., CPA = spend/conversions).
  • Color overload: Limit to 5–7 colors; use one accent color for highlights.
Debugging a noisy trend

Increase the time bucket (daily β†’ weekly), add a 7-day MA, and check for tracking gaps on specific dates.

Debugging surprising CPA outliers

Check denominators (very few conversions), recent changes in attribution windows, or paused/limited spend days.

Mini project: Campaign Retrospective Dashboard

Build a one-pager that a marketing lead can use in a 10-minute readout.

  1. Top panel: Last 30 days sessions and conversions with a 7-day MA and a target line.
  2. Channel bar chart: CPA, sorted, with annotations for best/worst.
  3. Funnel: Landing β†’ Product β†’ Cart β†’ Purchase, with drop-off labels and one recommended fix.
  4. Cohort heatmap: New customers by signup month vs 1–3 month repeat purchase rates.
  5. Driver view: Delta CPA vs last period by channel with callouts.
Acceptance criteria
  • Every chart has a clear title stating the insight.
  • Axes have units and date ranges.
  • One benchmark or goal line is visible where relevant.
  • No misleading scales; bars start at zero.

More practical project ideas

  • Channel health monitor: Weekly small multiples for CPA by channel with anomaly flags.
  • Seasonality explorer: 12-month trend with weekly seasonality overlays and moving averages.

Subskills

  • Choosing Charts For Marketing Decisions β€” Match common marketing questions to the clearest chart type. Outcome: you can pick the right chart quickly.
  • Time Series Trend Charts β€” Use rolling averages, comparisons to target/last period, and clean axes.
  • Channel Comparison Bar Charts β€” Normalize metrics (CPA/ROAS), sort, and annotate outliers.
  • Funnel And Drop Off Visuals β€” Show step conversions and drop-offs with clear labels.
  • Cohort Heatmaps Basics β€” Visualize retention or repeat rates over months since acquisition.
  • Clear Labels And Benchmarks β€” Titles that state insights, axis units, and goal/reference lines.
  • Highlighting Key Drivers β€” Use deltas and callouts to explain KPI changes.
  • Avoiding Misleading Visuals β€” Honest scales, proper baselines, and consistent colors.

Next steps

  • Turn your mini project into a reusable dashboard template.
  • Run one campaign readout using your visuals and collect feedback.
  • Practice weekly: update the dashboard and add one new insight callout each time.

Skill exam

Test your understanding below. Anyone can take the exam; logged-in learners get progress saved automatically.

Have questions about Data Visualization?

AI Assistant

Ask questions about this tool