Reporting
What should a D2C brand review show, and why?
A D2C brand review should lead with what changed, why it changed, the evidence for that cause, what the agency did about it, and what it will do next with a stated expectation. Charts support that story. Decisions get recorded so the next review checks whether each expectation held.
What you'll see in 10 minutes
- Why each number moved, with causes graded by confidence and linked to the source record
- GA4, Meta and Google Ads numbers side by side, each platform's own figure
- A white-label report drafted for your team to review before it goes to the brand
Why does the brand review matter so much?
The founder opens your monthly report on their phone between meetings. Slide after slide of charts. ROAS is down, sessions are up, cost per click has a red arrow. They scroll to the end looking for one sentence: why did this happen, and what are you doing about it? It isn't there. So they message your account manager, and the review meeting becomes an interrogation.
The review is where the brand decides whether to keep paying you. Campaigns are run inside platforms the founder rarely opens. The review is the one thing they actually read. If it explains the business back to them, they trust you with the next quarter. If it only shows numbers, they start to wonder what they're paying for.
What it costs to get this wrong. A review without a why turns every dip into a dispute and every good month into luck. Your team spends days building slides that don't answer the question, then hours on follow-up calls. And when the brand eventually compares agencies, it compares on price, because you never showed them how you think.
Why do most monthly reports fail?
Many reports are built from what the platforms export, not from what the brand needs to decide. Meta, Google Ads and GA4 each produce dozens of charts, and it feels safer to include them all. The result is a wall of charts with no why.
Three patterns show up again and again:
- Every metric gets equal space. Impressions, reach, clicks, sessions and ROAS sit side by side, and the reader can't tell which ones mattered this month.
- Movement without cause. "ROAS fell" is reported. Why it fell, and how you know, is not.
- No link to last month. Last month's review promised a new creative test. This month's doesn't say whether it ran or what happened.
A founder can read a chart on their own. What they're paying the agency for is the explanation and the next move.
What should a review lead with?
Lead with the story of the month, in six parts. Put charts after them as evidence, not in their place.
- What changed. The two or three movements that matter for revenue, in plain words.
- Why. The likely cause of each one, ranked by how confident you are.
- The evidence. What you checked: a creative that went live, a rival's new campaign, a tracking break, a seasonal pattern, a change to the site. Link to the source record, not just a screenshot.
- What you did. The changes your team already made in response.
- What you'll do next. The one or two moves you propose for the coming month.
- What you expect it to move. For each move, the metric it should affect, in which direction and by when.
The last part is the one reviews often skip, and it is the most useful. A stated expectation turns next month's review into a check, not a fresh argument. Why numbers moved builds the first three parts: it grades likely causes by confidence and links each to the record it came from.
What order should the review meeting follow?
Keep the meeting in the same order every month, so the brand knows where to find each answer. A suggested agenda:
| Section | Question it answers | Time |
|---|---|---|
| Last month's decisions | Did what we said we'd do happen, and did it move what we expected? | 10 min |
| What changed | Which numbers moved enough to matter this month? | 5 min |
| Why it changed | What caused each movement, and how confident are we? | 10 min |
| Numbers that don't match | Why do platforms disagree, and which one are we deciding on? | 5 min |
| What we did | What did the team already change in response? | 5 min |
| Next month | What will we try, and what do we expect it to move? | 10 min |
| Decisions and owners | What did we agree, who owns it, and when do we check? | 5 min |
Swipe the table sideways to see every column.
Start with last month's decisions, not this month's numbers. It shows the brand you remember what you promised, and it puts a miss on the table before the brand has to find it.
Weekly or monthly: what goes where?
They do different jobs. Don't make the weekly a smaller copy of the monthly.
The weekly update
Short and written, not a meeting. It answers three questions: what moved this week, what are we watching, and is there anything the brand needs to decide or approve? It goes out on the same day every week. Scheduled reports send it on a fixed day with the same layout, so nobody has to rebuild it.
The monthly review
The meeting with the full story: causes, evidence, last month's decisions checked against what happened, and next month's moves agreed. This is where the brand thesis gets revisited and where budget conversations happen.
Between the two
Some brands want to check numbers whenever they like. A brand portal gives the founder a login to see the same numbers and explanations your team sees, so the weekly update doesn't turn into a stream of "can you send me the latest" messages.
How do you show platform numbers that don't match?
GA4, Meta and Google Ads will report different conversions and revenue for the same month. Each counts differently: different attribution windows, different credit rules, ad blockers and consent choices, views versus clicks. The mismatch isn't a mistake. It is how the platforms work.
Trust breaks when the brand finds the mismatch before you mention it, or when your report uses Meta's number one month and GA4's the next.
Show each platform's own number
Put the figures side by side, labelled by source, and say plainly that they won't agree. Don't blend them into one number you made up. A blended figure looks tidy but can't be checked against anything.
Pick one source per decision, in advance
Agree with the brand which number each decision uses: for example, platform numbers for in-platform bid and budget calls, GA4 for comparing channels on the site. Write that down once and stick to it.
Explain a big gap, not every gap
If the gap between platforms suddenly widens, that is a finding worth investigating, often a tracking or tagging change. The guide to reconciling GA4, Meta and Google Ads numbers walks through how to check.
How do you present a miss honestly?
Every brand has months where results fall. What the brand remembers is how you told them.
Say it first
Put the miss at the top, in one plain sentence. Don't bury it near the end or lead with a vanity metric that went up.
Give causes, ranked, with evidence
Separate what you know from what you suspect. "We're confident about this cause, less sure about this one, and still checking a third" is more believable than one tidy explanation.
Show what you've already changed
A miss with action attached reads as management. A miss without one reads as drift.
A real example from our own brand
We run ai-dm on Moolwan, the Bengaluru D2C home décor brand the ai-dm founders own. Over 30 days to 26 Sep 2026, its Meta ads delivered 2.13× ROAS on ₹28,064 spend against a 4× benchmark, with 171,489 impressions and 3,895 clicks (ai-dm, Paid ads). That is below benchmark. In our own review it is recorded as a miss and a why still being investigated, with the evidence laid out, not rounded up or left out.
The last question matters. Plenty of misses have causes the agency can't see from the accounts, and asking shows you know that.
How do you record decisions so next month checks them?
A review that ends with "great, let's keep going" leaves nothing to check. End every review with a short written record of each decision:
- What we'll try. The specific change, such as a new creative angle, a budget shift or a landing page fix.
- Why. The finding or cause it responds to.
- What we expect. The metric, the direction and the date.
- Who owns it. A named person on the team or at the brand.
- What actually happened. Filled in at the next review.
Next month's agenda opens with this list. Over a few months it becomes the brand's memory: what was tried, what worked and what didn't. When a new marketing head joins the brand, or someone asks "didn't we try that already?", the answer is there. The decision ledger keeps this record in ai-dm: what was tried, why, expected against actual.
What does a one-page review look like?
Here is the shape of a one-page monthly review, using an illustrative brand.
Notice what's missing: no wall of charts. Each section answers one agenda question, and every claim has a source or a confidence grade. Charts go in an appendix for anyone who wants them.
How does ai-dm help build the review?
ai-dm is built and run every day on Moolwan, where one person runs nine marketing channels in about an hour a day. The review tools come from that daily use.
- Why numbers moved grades likely causes by confidence, with an evidence trail to the source record.
- GA4, Meta and Google Ads numbers appear side by side, each platform's own figure, not a single attributed truth.
- White-label reports are drafted under your agency's brand for your team to review and edit before they go out.
- Scheduled reports send the weekly update on a fixed day, and the brand portal gives the founder their own login.
- The decision ledger records what was tried, why, and expected against actual.
ai-dm drafts and recommends. Your team decides what the brand sees.
What should you do next?
Take last month's report for one brand and rewrite only its first page. Lead with what changed, why, the evidence, what you did, what you'll do next and what you expect. Add a decision list at the bottom. Send that page ahead of the next review and open the meeting with last month's decisions.
Related pages
More guides
How do you reconcile GA4, Meta and Google Ads numbers honestly?
Why GA4, Meta and Google Ads never match, from attribution windows to consent, and a step-by-step way to compare them and explain the gap to a brand.
Read the guide →How does a D2C brand show up in ChatGPT, Perplexity and Google's AI results?
What AI answers are documented to use, what is guesswork, and the fixes an agency can check: brand facts, schema, product data, reviews and tracking.
Read the guide →
Questions agencies ask
Why do most monthly marketing reports fail D2C brands?
They usually show a wall of charts and no explanation. The founder can see that a number moved but not why, what the agency did about it or what happens next, so the report raises questions instead of answering them.
What should a brand review lead with?
What changed, why it changed, the evidence for that cause, what you did, what you will do next and what you expect that to move. Put the charts after this, as support.
Should D2C brand reviews be weekly or monthly?
Both, with different jobs. A short weekly update flags what changed and what you are watching. The monthly review explains causes, checks last month's decisions and agrees the next ones.
How do you explain GA4, Meta and Google Ads numbers that don't match?
Show each platform's own number side by side, explain briefly why they count differently, and pick one source per decision before the meeting. Don't merge them into a single figure or quietly use whichever looks best.
How do you present a month where results fell?
Say it first, in plain words. Then give the likely causes ranked by confidence, the evidence, what you have already changed and what you expect next month. Hiding or softening a miss costs more trust than the miss itself.
No plan to pick. Billed in USD and INR. A brand's data is deletable on request.
