Why this matters
Marketing Analysts report performance regularly. Clean, reusable campaign reporting templates save hours each week, reduce errors, and make decisions faster. Typical tasks you will face:
- Weekly paid media performance by channel and campaign
- Budget pacing vs target with forecast to month-end
- Creative A/B test results with statistical clarity
- Funnel summary: impressions → clicks → leads/orders → revenue
- Executive dashboard highlighting trends and anomalies
What you will build in this lesson
- A tidy Data tab with validation-ready columns
- A Summary tab that aggregates with SUMIFS/PIVOT
- A Dashboard tab with dynamic date filters, pacing, and charts
Progress note: The quick test at the end is available to everyone; only logged-in users will see saved progress.
Concept explained simply
A campaign reporting template is a spreadsheet you can copy each reporting cycle. You paste or import raw results into a Data tab; the template auto-calculates KPIs and updates summaries, pacing, and charts without manual rework.
Mental model
Think of it as plumbing:
- Inputs (Data): clean columns for Date, Channel, Campaign, Spend, Impressions, Clicks, Conversions, Revenue
- Pipes (Formulas): consistent calculations (CTR, CPC, CPA, ROAS) and flexible aggregations (SUMIFS, pivots)
- Outputs (Dashboard): clear tables and charts answering stakeholders’ questions
Formula dictionary (open when you need it)
- CTR = IFERROR(Clicks / Impressions, 0)
- CPC = IFERROR(Spend / Clicks, 0)
- CPA = IFERROR(Spend / Conversions, 0)
- Conversion Rate (CVR) = IFERROR(Conversions / Clicks, 0)
- ROAS = IFERROR(Revenue / Spend, 0)
- SUMIFS(range, criteria_range1, criteria1, ...)
- TODAY(), EOMONTH(start, months), DAY(date)
Template design checklist
- One row per day per campaign (granular and tidy)
- Separate Data, Summary, Dashboard tabs
- Derived columns: CTR, CPC, CPA, ROAS, CVR
- Dynamic date range (e.g., last 7, MTD)
- Validation: no blank Date/Channel/Campaign/Spend columns
- Documented assumptions in a small notes area
Worked examples
Example 1 — Weekly channel performance
Goal: Sum this week’s metrics by Channel.
Data columns (A:H): Date, Channel, Campaign, Impressions, Clicks, Spend, Conversions, Revenue.
Summary layout:
- B1: Start_Date, C1: End_Date (enter the week range)
- Channels in A3:A6 (e.g., Paid Search, Paid Social, Display, Email)
Formulas (row 3 copy down):
- Impressions: =SUMIFS(Data!$D:$D, Data!$A:$A, ">="&$B$1, Data!$A:$A, "<="&$C$1, Data!$B:$B, $A3)
- Clicks: =SUMIFS(Data!$E:$E, Data!$A:$A, ">="&$B$1, Data!$A:$A, "<="&$C$1, Data!$B:$B, $A3)
- Spend: =SUMIFS(Data!$F:$F, Data!$A:$A, ">="&$B$1, Data!$A:$A, "<="&$C$1, Data!$B:$B, $A3)
- Conversions: =SUMIFS(Data!$G:$G, Data!$A:$A, ">="&$B$1, Data!$A:$A, "<="&$C$1, Data!$B:$B, $A3)
- Revenue: =SUMIFS(Data!$H:$H, Data!$A:$A, ">="&$B$1, Data!$A:$A, "<="&$C$1, Data!$B:$B, $A3)
- CTR: =IFERROR(Clicks/Impressions,0), CPC: =IFERROR(Spend/Clicks,0), CPA: =IFERROR(Spend/Conversions,0), ROAS: =IFERROR(Revenue/Spend,0)
Tip
Switch to a Pivot Table if you prefer: Rows=Channel, Filters=Date between Start_Date and End_Date, Values=Sum of metrics.
Example 2 — Budget pacing MTD
- Inputs: Monthly_Budget in B2, Today = TODAY() in B3, Start_of_Month = EOMONTH(Today,-1)+1 in B4, End_of_Month = EOMONTH(Today,0) in B5
- Days_in_Month = DAY(End_of_Month) in B6
- Days_Elapsed = Today - Start_of_Month + 1 in B7
- Target_to_Date = Monthly_Budget * (Days_Elapsed / Days_in_Month) in B8
- Actual_to_Date = SUMIFS(Data!$F:$F, Data!$A:$A, ">="&Start_of_Month, Data!$A:$A, "<="&Today) in B9
- Pacing_% = IFERROR(Actual_to_Date / Target_to_Date, 0) in B10
- Forecast_EOM = IFERROR(Actual_to_Date / Days_Elapsed, 0) * Days_in_Month in B11
Visualize
Insert a line chart with two series: Cumulative Target vs Cumulative Actual across the month.
Example 3 — Creative A/B test roll-up
Goal: Compare Creative A vs B within the same campaign and date range.
- Filter Data to one Campaign and Date range
- Group by Creative_Name
- Aggregate: Impressions, Clicks, Spend, Conversions
- KPIs: CTR, CPC, CPA, CVR
Simple layout formulas (A/B on rows):
- Clicks_A = SUMIFS(Data!$E:$E, Data!$C:$C, campaign, Data!$I:$I, "A", Data!$A:$A, ">="&start, Data!$A:$A, "<="&end)
- Clicks_B similar; repeat for other metrics
- CVR = IFERROR(Conversions/Clicks,0)
Interpretation
Pick the winner by CPA for lead gen or by ROAS for ecommerce. If close, check sample sizes to avoid overreacting to noise.
Build steps (follow-along)
- Create tabs: Data, Summary, Dashboard
- On Data: set columns Date, Channel, Campaign, Impressions, Clicks, Spend, Conversions, Revenue
- Add derived columns on Data: CTR, CPC, CPA, ROAS
- On Summary: cells B1=Start_Date, C1=End_Date
- Optionally auto-fill last 7 days: B1=TODAY()-6, C1=TODAY()
- Set a channel list in A3:A
- Use SUMIFS to populate totals per channel bounded by Start_Date/End_Date
- Insert a line chart for cumulative spend vs target
- Add a bar chart for ROAS by channel
- Add clear KPI cards (big numbers) for Spend, Conversions, Revenue
Common mistakes and self-check
- Mixed granularity (weekly + daily in Data): always one row per day per campaign
- Manual totals: use SUMIFS or pivots to avoid hand sums
- Division by zero: wrap with IFERROR(...,0)
- Wrong date bounds: include both ">=" Start and "<=" End consistently
- Hidden filters: reset filters before exporting or aggregating
Self-check
- Change the Start_Date/End_Date: do numbers update everywhere?
- Pick a random campaign and manually sum two days — does Summary match?
- Do CTR + CPC + CPA recompute when clicks/conv are zero?
Who this is for
- Marketing Analysts and aspiring analysts
- Performance marketers who need repeatable weekly reports
- Freelancers preparing client-ready dashboards
Prerequisites
- Comfort with spreadsheets (basic formulas)
- Know core metrics: impressions, clicks, spend, conversions, revenue
- Basic pivot table usage (optional but helpful)
Learning path
- Before: Basic spreadsheet formulas and formatting
- Now: Campaign Reporting Templates
- After: Data import automation, attribution nuances, and cohort analyses
Hands-on exercises
Complete these in a new workbook. They mirror the exercises below so you can check your work.
Exercise 1 — Weekly multi-channel report
- Create Data, Summary, Dashboard tabs
- On Data, enter 7 daily rows for two channels (Paid Search, Paid Social) with sample metrics
- On Summary, set Start_Date and End_Date; build a table by Channel calculating all KPIs
- On Dashboard, add a bar chart for ROAS by Channel
Exercise 2 — Budget pacing and forecast
- Create a Pacing area with fields: Monthly_Budget, Today, Start_of_Month, End_of_Month, Days_in_Month, Days_Elapsed
- Compute Target_to_Date, Actual_to_Date (summing Data!Spend), Pacing_%, and Forecast_EOM
- Insert a line chart comparing cumulative Target vs Actual
Checklist before you move on
- Your summary updates when you change Start_Date/End_Date
- No formula errors when clicks or conversions are zero
- Pacing_% makes sense (≈100% means on target)
- Charts are readable and labeled
Practical projects
- Client-ready weekly deck: one-page Dashboard with top KPIs, a spend vs target line, and a ROAS bar by channel
- Creative test lab: a Summary that isolates a campaign and compares creatives on CPA/CVR
- Quarter-to-date rollup: a template that switches between WTD, MTD, QTD via date controls
Next steps
- Add validation to Data (no negative spend, required fields)
- Introduce campaign naming conventions for cleaner grouping
- Automate paste-in with consistent column order
Mini challenge
In your template, add a toggle cell with "Lead Gen" or "Ecom". If Lead Gen, highlight CPA; if Ecom, highlight ROAS. Implement with a simple IF to choose which KPI to display prominently.
Ready? Quick Test
When you finish, take the quick test below. Everyone can take it for free; log in to save your progress.