A useful weekly marketing report does three jobs: it reconciles the numbers, explains what changed, and recommends the next action.
If it stops at screenshots and charts, the report is not finished.
The hard part is rarely pulling another number into a dashboard. It is deciding which system to trust when Meta, Google Ads, GA4, Shopify, and the CRM disagree. It is separating a fact from a plausible story. It is knowing when the data is fresh enough to support a budget decision.
This guide gives you a weekly marketing report template built for that job. You can copy it into a document, spreadsheet, database, or reporting workflow. The format keeps the decision on one page and moves supporting detail into an appendix.
Short answer: A weekly marketing report should show the business goal, the agreed source for each metric, performance against target, data-quality warnings, facts, hypotheses, the recommended action, the owner, and the person who approves the move.
Weekly marketing report template: copy this one-page format
Use the following structure for the first page. Keep raw channel tables and detailed campaign breakdowns in an appendix.
1. Report header
| Field | What to enter |
|---|---|
| Reporting period | The exact start and end date |
| Data cut-off | The date and time when every source was last checked |
| Time zone | One time zone used across the report |
| Business goal | The outcome the team is trying to change |
| Decision requested | Hold, increase, decrease, test, or investigate |
| Decision owner | The person who will act after approval |
| Approver | The person who can approve spend or strategy changes |
2. Weekly marketing scorecard
| KPI | Target | This week | Last week | Change | Source of record | Data status |
|---|---|---|---|---|---|---|
| Revenue or qualified pipeline | Commerce, finance, or CRM | Fresh / delayed / incomplete | ||||
| Qualified leads or orders | CRM or commerce platform | Fresh / delayed / incomplete | ||||
| Marketing spend | Ad platforms or finance | Fresh / delayed / incomplete | ||||
| Cost per qualified outcome | Calculated from agreed sources | Fresh / delayed / incomplete | ||||
| Conversion rate | Agreed analytics source | Fresh / delayed / incomplete | ||||
| One leading indicator | Channel or analytics source | Fresh / delayed / incomplete |
3. Decision block
| Field | Entry |
|---|---|
| Fact | What the verified numbers say, without an explanation |
| Hypothesis | The most plausible explanation, marked as unproven |
| Recommended action | The smallest useful move for the next reporting period |
| Expected signal | The number or behavior that would support the hypothesis |
| Risk or constraint | What could make the action unsafe or misleading |
| Owner and due date | Who acts, and by when |
| Approval | Approved, rejected, or more evidence required |
4. Example decision block
The numbers below are illustrative. They are not BuildWire client results.
| Field | Example |
|---|---|
| Fact | Paid search spend fell while qualified leads held broadly steady. Cost per qualified lead improved. |
| Hypothesis | Pausing a low-converting campaign removed waste without reducing lead quality. |
| Recommended action | Keep the pause for one more week. Move a small test budget to the best-performing campaign. |
| Expected signal | Qualified lead volume stays within the agreed range while blended cost per qualified lead remains below target. |
| Risk or constraint | Lead volume is low, so one week may not be enough to judge the change. |
| Owner and due date | Paid media lead, before the next campaign cycle. |
| Approval | Marketing lead approves the test before the budget moves. |
That is the core distinction between a dashboard and a decision report. The dashboard stores and displays data. The report states what the team believes should happen next, why, and under whose authority.
What should a weekly marketing report include?
A weekly marketing report should include five layers:
- The goal: What business outcome are we trying to change?
- The evidence: What happened against target, using agreed metric definitions?
- The data-quality status: Is the data complete, fresh, and comparable?
- The interpretation: What is fact, and what is still a hypothesis?
- The action: What should happen next, who owns it, and who approves it?
Anything that does not help the reader make or approve a decision belongs in the appendix.
That usually includes campaign-level rows, creative breakdowns, keyword lists, raw exports, attribution comparison tables, and screenshots. Those details still matter. They should support the decision, not bury it.
A marketing leader should be able to read the first page in five minutes and answer four questions:
- Are we on target?
- Can we trust the data?
- What changed?
- What do you want us to do next?
Why every platform claims the conversion
Meta, Google Ads, GA4, Shopify, and your CRM can all report different conversion totals without any one system being broken.
They may be answering different questions.
Meta lets advertisers choose attribution settings that determine whether conversions receive credit after clicks, views, or other interactions, and over which time window. Google Ads also uses configurable conversion windows. GA4 can assign credit according to the attribution model and traffic-source scope selected in the property. Shopify offers several attribution views and explicitly notes that its numbers can differ from third-party reports because attribution rules and data-sync timing differ.
The official documentation makes the source of the mismatch clear:
- Google Ads defines a conversion window as the period after an ad interaction in which a conversion can be recorded. Different click, engaged-view, and view-through windows can produce different totals.
- GA4 applies different attribution behavior by scope. User, session, and event-scoped traffic dimensions do not answer the same question.
- Meta attribution settings can credit conversions after impressions, clicks, or video engagement under selected windows.
- Shopify says attribution and sync differences can cause its marketing reports to disagree with external platforms.
There is another timing issue. Google explains that Google Ads can report a conversion against the date of the ad click, while Analytics reports it against the date when the conversion happened. A purchase after midnight can therefore appear on different dates in two reports even when both systems recorded the same action. See Google's guide to Analytics and Ads conversion discrepancies.
This is why averaging the platform totals is a bad fix. You do not get truth by averaging different definitions.
Instead, write down what each number means.
| Metric shown | Question it answers |
|---|---|
| Platform-attributed conversions | How many outcomes did this ad platform credit to its activity under its settings? |
| GA4 key events by channel | How did GA4 assign event credit under the selected model and scope? |
| Commerce orders | How many orders were recorded in the store? |
| CRM qualified leads | How many captured leads met the agreed qualification rule? |
| Finance revenue | How much recognized revenue belongs in the reporting period? |
The weekly report should preserve these distinctions. It should not force every platform number into one column called conversions.
Choose a source of truth and define every metric
There is no universal source of truth for the whole report. There is a system of record for each metric.
A practical hierarchy looks like this:
| Business question | Default system of record | Why |
|---|---|---|
| How much did we spend? | Ad platform, reconciled with finance when needed | The platform records delivery and billed media cost. |
| How many orders did we receive? | Commerce platform | It records the order. |
| How much revenue should we recognize? | Finance or commerce, with an agreed refund and cancellation rule | Revenue definitions vary by gross, net, tax, refunds, and order status. |
| How many leads became qualified? | CRM | Qualification happens after the form fill. |
| What happened on the website? | GA4 or the agreed product analytics tool | It records sessions and onsite events under its setup. |
| Which platform claims credit? | The platform attribution report | It answers a platform-specific attribution question. |
Before the first workflow is built, create a metric dictionary. Each entry should state:
- Metric name
- Plain-language definition
- Formula
- Source
- Filters and exclusions
- Attribution model and window, where relevant
- Time zone
- Currency
- Update frequency
- Owner
For example, qualified lead should not mean form submission in one report and sales-accepted lead in another. Revenue should not switch between gross sales and net sales depending on which dashboard is open.
This definition work is less exciting than a new dashboard. It is also the work that stops the same argument every Monday.
If you still need to connect ad data before building the decision layer, start with our guide to connecting Google Ads data to Claude or the broader setup for bringing Meta Ads and Google Ads into one workflow.
Bring every channel into one weekly record
Once definitions are fixed, bring each source into a shared weekly record. Do not start by asking a language model to read five screenshots. Start with a consistent schema.
A useful record includes:
| Field | Purpose |
|---|---|
| Period start and end | Makes the reporting window explicit |
| Pulled at | Shows when the source was last checked |
| Time zone | Prevents date-boundary mismatches |
| Channel and campaign ID | Keeps names tied to stable identifiers |
| Metric name and value | Stores the normalized measure |
| Currency | Prevents silent mixing of currencies |
| Attribution model and window | Explains platform credit |
| Source record or report | Lets a reviewer trace the number |
| Data status | Marks fresh, delayed, incomplete, or failed data |
Keep the raw pull as well as the normalized table. Never overwrite the source data with a cleaned value and lose the original.
Apply five normalization rules:
- Use one reporting time zone.
- Convert currency with a recorded rate and date.
- Separate platform-attributed outcomes from business-recorded outcomes.
- Keep stable campaign, ad set, ad, and CRM IDs wherever possible.
- Store the data cut-off beside the report, not in someone's memory.
The shared record is the foundation for automated marketing reporting. Without it, the summary writer has no reliable context and no way to explain a mismatch.
Reconcile the numbers before writing the summary
When two sources disagree, check the definitions in a fixed order.
1. Are they counting the same event?
A purchase, qualified lead, booked meeting, and form submission are different outcomes. Confirm the event name and business rule before checking the code.
2. Are they assigning the event to the same date?
Google Ads can assign a conversion to the ad interaction date while GA4 reports the event date. Compare the same date basis before calling it a tracking problem.
3. Are the attribution model and window aligned?
A 7-day click window and a 1-day click window should not be expected to match. A view-through conversion and a click-through conversion should not be treated as the same evidence.
4. Is the counting method the same?
Google Ads can count one conversion per interaction or every conversion, depending on the action settings. GA4 may count each event occurrence. That difference alone can change the total.
5. Are filters, refunds, consent, and invalid traffic handled the same way?
A commerce report may exclude test orders. A finance report may treat refunds differently. A browser may block tracking. An ad platform may filter invalid clicks. Document the exclusions.
6. Is the data finished processing?
Do not investigate a mismatch that exists only because one system is still catching up.
Use two reconciliation fields in the report:
- Absolute variance: platform-attributed outcome minus system-of-record outcome
- Variance rate: absolute variance divided by the system-of-record outcome
Set a tolerance for each metric. The tolerance should reflect volume and business risk. A difference of five conversions means something different when the weekly total is 20 than when it is 20,000.
If the variance is inside the agreed range, continue to the decision. If it is outside the range, label the report investigate and stop the budget recommendation until the mismatch is understood.
Separate facts, hypotheses, and recommended actions
A weekly report becomes dangerous when it writes an explanation as if it were observed fact.
Use three separate fields.
| Layer | Test | Example |
|---|---|---|
| Fact | Can a reviewer point to the verified number? | Qualified leads fell 12% week over week. |
| Hypothesis | Is this a possible explanation that still needs evidence? | The landing-page change may have reduced conversion from mobile traffic. |
| Recommended action | Is this a bounded step that can test the hypothesis or protect performance? | Restore the previous mobile form for one week and compare completion rate. |
Do not write: Leads fell because the new page is worse.
Write: Leads fell 12%. Mobile form completion also fell after the page change. We believe the new form may be contributing. Restore the previous form for half the traffic and compare completion rate for one week.
The second version shows the evidence, admits uncertainty, and names a test.
A useful recommendation contains five parts:
- The action
- The reason
- The expected signal
- The owner and deadline
- The person who approves it
This structure is also easier for an agent to draft because the fields are explicit. The agent does not need to invent causality to fill a paragraph.
Add data-freshness and anomaly checks before the report is written
Freshness is not a technical footnote. It is a condition for making the decision.
Google says GA4 standard intraday data typically processes in two to six hours, while daily data can take longer and report values can change during the following 24 to 48 hours. Google also says imported Analytics conversions can take up to 24 hours to appear in Google Ads. Shopify notes that marketing-app spend can take up to 24 hours to sync.
A weekly report therefore needs a data cut-off and a freshness check for every source.
Run these checks before any summary is generated:
| Check | What it catches |
|---|---|
| Last successful pull | An expired token or failed connection |
| Latest source timestamp | A report built on stale data |
| Expected row count | A missing day, account, campaign, or store |
| Null and zero checks | Blank fields that look like real zeroes |
| Week-over-week range check | Sudden changes that need review |
| Reconciliation variance | Source totals outside the agreed range |
| Schema check | Renamed fields or API changes |
| Currency and time-zone check | Silent comparison errors |
Use three alert levels:
- Block: The report should not be published and no action should be recommended.
- Review: The report can be read, but the affected decision needs a person to inspect the source.
- Note: The issue is known and does not change this week's decision.
A good anomaly rule combines a percentage change with an absolute threshold. That stops low-volume noise from triggering the same alarm as a real business change. The exact thresholds should be set by the team that owns the metric.
For a working example of this control layer, see our GA4 Data Quality Monitor setup guide.
Keep a human sign-off for budget changes
A reporting system can collect data, reconcile definitions, flag anomalies, calculate changes, and draft a recommendation.
It should not move budget simply because the summary sounds confident.
Use approval rules based on consequence:
| System action | Default rule |
|---|---|
| Read data | Can run automatically within approved access |
| Calculate metrics | Can run automatically from locked definitions |
| Flag a data problem | Can run automatically |
| Draft a hypothesis | Can run automatically, labelled as a hypothesis |
| Draft a recommendation | Can run automatically, with evidence attached |
| Change spend, targeting, offer, or audience | Requires human approval |
| Send the final report outside the team | Requires the agreed publication rule |
The person approving the action should see the source data, the freshness status, the size of the proposed change, and the rollback condition.
The goal is not to keep people clicking approve on harmless work. It is to keep authority attached to decisions that can spend money, change the customer experience, or create compliance risk.
Our Marketing Automation Hierarchy explains the same principle across other marketing workflows: automate repeated work first, and keep judgment where the cost of a bad decision is high.
What to automate first and what to keep human
Start with the parts of marketing reporting that are repeated, rules-based, and easy to verify.
Automate first
- Pulling data from approved sources
- Converting it into the shared weekly schema
- Calculating targets, changes, and variance
- Checking freshness, missing rows, and broken connections
- Producing standard tables and charts
- Drafting the fact section from verified values
- Preparing a recommendation for review
- Recording approvals and decisions
Keep human
- Choosing the business goal
- Defining qualified lead, revenue, and other business metrics
- Setting reconciliation tolerances
- Judging whether a pattern is causal or merely correlated
- Approving budget, offer, audience, or targeting changes
- Deciding when an exception overrides the normal rule
At BuildWire, we build marketing reporting workflows, anomaly alerts, and agents around this split. We also run our own marketing on the systems we build. The standard is not a clever summary. It is a system the team can inspect, approve, and run again next week.
If you want to see a campaign-specific analysis layer, read our Google Ads Performance Analyzer. For a wider view of repeated marketing workflows, see three marketing workflows we automated and documented.
How to create a weekly marketing report in seven steps
If you need the process in one place, use this sequence:
- Choose the business decision the report needs to support.
- Define each metric and assign its system of record.
- Pull every source into one normalized weekly table.
- Check freshness, completeness, and reconciliation variance.
- Write facts before writing explanations.
- Turn the leading hypothesis into a bounded action and expected signal.
- Get human approval before changing spend or strategy.
That is the full loop. Collect, check, interpret, recommend, approve, and record.
Frequently asked questions
What is a weekly marketing report?
A weekly marketing report is a short decision record covering a fixed seven-day period. It compares performance with target, states which systems supplied the numbers, flags data problems, separates facts from hypotheses, and recommends the next action with an owner and approver.
What should a weekly marketing report include?
Include the reporting period, data cut-off, business goal, KPI scorecard, system of record for each metric, data-quality status, verified facts, working hypotheses, recommended action, expected signal, owner, deadline, and approval status. Put raw campaign detail in an appendix.
What is the difference between a marketing dashboard and a marketing report?
A dashboard displays current or historical metrics. A marketing report interprets a defined period and asks for a decision. The report should use dashboard data, but it also needs context, data checks, an explanation of uncertainty, a recommended action, and ownership.
Why do Meta, Google Ads, GA4, and Shopify report different conversions?
They can use different attribution models, windows, event definitions, date rules, counting methods, filters, and processing times. Compare the settings and definitions before comparing totals. Use the CRM, commerce platform, or finance system as the record for business outcomes, depending on the metric.
How do I write a weekly marketing report?
Start with the decision the reader needs to make. Add a scorecard against target, state the source and freshness of each number, separate verified facts from working hypotheses, and finish with one recommended action, owner, deadline, and approval status.
How should I format a weekly report?
Keep the decision view to one page. Use this order: goal, reporting period, data cut-off, KPI scorecard, data-quality status, facts, hypotheses, recommended action, expected signal, owner, and approval. Put raw campaign tables and screenshots in an appendix.
How do you automate a weekly marketing report?
Start with a metric dictionary and shared schema. Then automate source pulls, normalization, calculations, freshness checks, variance checks, tables, and a first draft. Keep causal judgment and consequential changes behind human approval.
How long should a weekly marketing report be?
Keep the decision view to one page. The reader should be able to understand performance, data quality, and the requested action in about five minutes. Put raw tables, channel detail, and attribution comparisons in an appendix.
From report to next move
The report is not the product. The next decision is.
A good weekly marketing report gives the team one agreed view of the business outcome, makes data problems visible, and turns uncertainty into a small test rather than a confident story.
If repetitive reporting is eating your week, tell us what your team pulls, checks, and rewrites every Monday. We build the system that does the repeated work and leaves the decision with the people accountable for it.
Sources
- Google Analytics Help: Select attribution settings
- Google Analytics Help: Scopes of traffic-source dimensions
- Google Ads Help: About conversion windows
- Google Ads Help: Create conversions from Google Analytics events in Google Ads
- Google Analytics Help: GA4 data freshness
- Meta Business Help Center: About attribution models and attribution settings
- Shopify Help Center: Measuring marketing performance
- Shopify Help Center: Analytics discrepancies