Agency Skills
SkillsMCPCollectionsContributorsContribute
Install MCP
Agency Skills

Skills written by the people who run agencies, consultancies and coaching firms. Free and open source, MIT.

LibraryAll skillsCollectionsContributors
ContributeHow to contributeContributor guideGitHubReport a problem
GiaCompany BrainPowered by Gia
Skills/Win the work/Weekly site and ad report
Marketing

Weekly site and ad report

Use this skill on the fixed day each week when a client's site traffic and paid campaigns need reporting, and the report has to say what to do rather than what happened. Produces a short report: the five numbers that matter against last week and the four-week average, what moved and why, and one recommendation per channel the client can act on. Also use for "weekly report for [client]", "how did the ads do last week", "pull the traffic numbers", "marketing report".

Christian BeckChristian BeckCOO and Managing Partner, Five Four
Say something like
“weekly report for [client]”“how did the ads do last week”“pull the traffic numbers”“marketing report”
google-analyticsgoogle-adsmeta-adsreportinganalyticspaid-mediaweekly-cadenceclient-reporting
SKILL.mdView on GitHub

Applies on the same day every week, per client. Produces a one-screen report that leads with what changed and ends with what to do about it.

The play

  1. Pull the same five numbers every week, per client, from the same sources. Sessions, conversions, conversion rate, spend, and cost per conversion. The definitions and where each comes from are in references/metrics.md, and the definitions do not change once set, because a redefined metric erases the history that makes the report worth reading.
  2. Set every number against two baselines, not one: last week, and the four-week rolling average. Week on week catches the spike, the rolling average tells you whether the spike matters. A number reported on its own is decoration.
  3. Flag only what moved beyond normal variance for that client. The thresholds, and how to work out a client's own normal variance from their first eight weeks, are in references/thresholds.md. A small site will swing 30% on nothing at all, and reporting that swing as a finding teaches the client to ignore the report.
  4. Explain each flagged move before writing a word of recommendation. Work the list in references/thresholds.md in order: tracking broken, a change you shipped, a change they shipped, seasonality or a calendar event, then the market. Most weeks the answer is in the first three, and the discipline is to rule those out rather than reach for the interesting explanation.
  5. Branch by what is running:
    • Paid live, spend steady, cost per conversion moving: it is creative fatigue or auction pressure. Look at frequency and impression share before touching the budget.
    • Paid live and newly launched: report learning-phase numbers as directional only, and say so. A recommendation off four days of data is a guess with a chart behind it.
    • No paid this week: the report is shorter, not padded. Organic and conversion rate only.
    • A campaign launched or ended mid-week: name the date on the chart. Unlabelled, it reads as a trend forever after.
  6. Write one recommendation per channel. Each names the action, the expected effect and who does it. Three recommendations a client acts on beat twelve observations they skim. The report format is in references/report-format.md.
  7. Carry last week's recommendations forward with their outcome. A report that never checks its own previous advice is a newsletter.

What good looks like

  • First thing I check that most people skip: whether tracking is still working before reading a single number. A conversion drop to zero is a broken tag far more often than a dead channel, and nothing is more expensive than a recommendation built on a broken pixel.
  • The mediocre version: an exported dashboard with twenty metrics, every one of them up or down in green and red, no explanation, and a closing line that says we will continue to monitor. It takes two minutes to generate and gives the client nothing to decide.
  • I know the report is right when the client replies about a recommendation rather than a number.
  • Second test: someone could read only the first three lines and know whether the week was good, bad or flat.
  • Red flag: the same recommendation appearing three weeks running. Either it was never actioned, which is a conversation, or it was wrong.

Rules

  • MUST verify tracking before reading the numbers.
  • MUST show every number against both last week and the four-week average.
  • MUST keep the metric definitions fixed once set.
  • MUST explain a move before recommending anything, ruling out tracking and shipped changes first.
  • MUST carry forward last week's recommendations with their outcome.
  • MUST label a newly launched campaign's numbers as directional.
  • NEVER report a move inside normal variance as a finding.
  • NEVER send a report whose only recommendation is to keep monitoring.
3 reference files
references/metrics.md

The five numbers

Five, every week, same definitions. The restraint is the point: a client can hold five numbers in their head and will act on them. Twenty metrics get skimmed.

MetricSourceDefinitionWhy this one
SessionsGoogle AnalyticsAll sessions, all channels, excluding internal trafficThe denominator for everything else
ConversionsGoogle AnalyticsOne named primary event per client, chosen at kickoffThe only number the client's board asks about
Conversion rateDerivedConversions / sessionsSeparates a traffic problem from a site problem
SpendGoogle Ads + Meta AdsTotal paid media, all platforms, same currencyThe input
Cost per conversionDerivedSpend / conversions attributed to paidThe output that decides next week's budget

Setting the primary conversion

One event per client, agreed at kickoff, never changed mid-engagement. A demo request, a qualified form fill, a trial start, a booked call. Not "all form submissions", which quietly includes the contact page, the newsletter and the careers enquiry.

Secondary events can be tracked and reported under the fold. They are never promoted into the headline number partway through an engagement, because it breaks every comparison that came before it.

Segmenting

Report the five totals, then split sessions and conversions by channel group: organic, paid search, paid social, direct, referral. Five channel rows, not twelve sources.

Split paid by platform in the paid section only, never in the headline. The client cares what paid cost in total first, and which platform second.

Filters that must be in place before any of this means anything

  • Internal traffic excluded by IP or by a flag, including the agency's own
  • Bot filtering on
  • Cross-domain tracking configured if the form or the booking tool lives on another domain
  • UTM conventions agreed and used, or every paid click lands in direct and the report is fiction

The cross-domain one accounts for most inherited analytics accounts that report a conversion rate that looks impossibly bad.

Attribution

Pick a model at kickoff, name it in the report footer, and leave it alone. Platform-reported conversions and analytics-reported conversions will never match, and the gap is normal. Report one as the number of record and mention the other only when the gap itself changes sharply, which usually means a tracking change rather than a performance one.

references/report-format.md

The report

One screen. The client reads the first three lines on a phone and knows how the week went. Everything else is there for the person who wants it.

[CLIENT] - week of [date range]

THE WEEK
[One line: good, bad or flat, and the single reason.]

                  This week    vs last    vs 4-wk avg
Sessions              2,410       +12%          +4%
Conversions              38        -5%          -1%
Conversion rate        1.6%       -15%          -5%
Spend                $4,200         0%          +2%
Cost per conv          $141       +18%          +9%

WHAT MOVED
[Only flagged items. Each one: what moved, then why, then the evidence.]
- Cost per conversion up 18% on flat spend. Frequency hit 2.9 on the
  prospecting set, CTR down 24%. Creative fatigue, not auction pressure.

RECOMMENDATIONS
1. [Paid] Swap the three prospecting creatives for the new set.
   Expect cost per conversion back near $120 within 10 days. Us, Tuesday.
2. [Site] Pricing page is 41% of entries and converts at 0.7%.
   Test the form above the fold. Us, next sprint.

LAST WEEK'S RECOMMENDATIONS
1. Raise search budget 20% - done Monday, impression share lost to
   budget fell from 31% to 9%. Working.
2. Fix the mobile nav - not started. Carried.

Primary conversion: demo request. Attribution: [model]. Paid: [platforms].

Rules of the format

The week is one line and it commits. "Flat, with paid costs drifting up" is a judgment. "Mixed results across channels" is not.

The table is five rows and three columns. Always both comparison columns. No colour coding: red and green do the thinking for the reader and they do it badly, because a spend increase is not inherently bad.

What moved only lists flagged items. Each entry is what, then why, then the evidence that rules out the alternatives. If the why is not known yet, write that and say what will be checked. An honest unknown beats a confident guess that gets quoted back in three weeks.

Recommendations are one per channel, maximum three. Each one: action, expected effect, owner, date. A recommendation with no owner is an observation.

Last week's recommendations carry forward with their outcome: done and it worked, done and it did not, or not started. This section is what makes the report compound, and it is the first section people drop when busy.

The footer names the primary conversion, the attribution model and the platforms. It settles the quarterly argument about why these numbers do not match the ones in the ad platform.

Length

If it does not fit on one screen, cut the commentary, not the recommendations.

Delivery

The same day, the same time, every week. A report that lands late is read later, and a report read later is not acted on. Delivering a thin report on time beats a thorough one on Thursday.

references/thresholds.md

What counts as a move

A number is not a finding until it leaves that client's normal range. Small sites swing hard on nothing, and a report that treats every swing as news trains the client to stop reading.

Establishing normal variance

Take the client's first eight weeks. For each metric, the week-on-week percentage change, highest and lowest. That spread is their normal. Anything inside it is noise for that client.

No eight weeks of history yet? Start with the defaults below and say in the report that the bands are provisional.

Weekly sessionsDefault flag threshold
Under 50040%
500 to 2,00025%
2,000 to 10,00015%
Over 10,00010%

Conversions get one band wider than sessions, because the counts are smaller and noisier. Under 10 conversions a week, do not flag percentage moves at all; report the raw count and talk about the trend over four weeks.

Always flag, whatever the size

  • Conversions at zero for a full day with traffic arriving. Tracking, until proven otherwise.
  • Spend over or under pacing by more than 20% against plan.
  • Cost per conversion moving more than 30% with spend flat.
  • Any channel going to zero.
  • A single day accounting for more than half the week's sessions.

Explaining a move, in order

Work the list top down and stop at the first that fits. The order matters because the boring explanations are the common ones, and the interesting explanation is the one that produces a wrong recommendation.

  1. Tracking. Tag fired? Container published? Did anyone touch the site, the consent banner or the form?
  2. Something we shipped. A page went live, a redirect, a nav change, a new form. Check the deploy log before theorising.
  3. Something they shipped. A price change, a product announcement, an email send, a webinar, a conference. Ask rather than assume; clients routinely forget to mention a 40,000-recipient send.
  4. Calendar and seasonality. Holiday, quarter end, industry event, the week everyone is at a conference.
  5. Platform or market. Auction pressure, a competitor launch, an algorithm change. Last, and only with evidence from inside the platform, such as impression share or frequency.

Paid specifics

SignalThresholdReading
FrequencyOver 2.5 in a week on a cold audienceCreative fatigue. Refresh before touching budget.
Impression share lost to rankRising 10 pointsA quality or relevance problem, not a budget one
Impression share lost to budgetOver 20%Genuinely budget constrained. This is the one worth more money.
Learning phaseUnder 7 days or under 50 conversionsDirectional only. Say so, recommend nothing.
CTRDown 25% with impressions flatThe creative has been seen too often

When nothing moved

Say so in one line and keep the recommendation section. A flat week with a clear recommendation is a useful report. A flat week padded with commentary is how a weekly report loses its slot.

Install this skill

Pick where your agent runs.

View prompt
Help me install the skill named "weekly-site-and-ad-report" from this GitHub URL in Claude:
https://github.com/agiea-brain/agency-skills/tree/main/skills/christian-beck/weekly-site-and-ad-report

Prepare only the "weekly-site-and-ad-report" skill, not other skills in the repository.

Inspect each complete skill folder, not just SKILL.md. Preserve the original instructions and include all supporting files (such as references, scripts, templates and assets), keeping their relative paths intact. Package each skill as a downloadable ZIP containing its skill folder with SKILL.md directly inside that folder. If a skill only contains SKILL.md, package that folder too.

Give me the download link for each ZIP and walk me through uploading and enabling it under Settings, Capabilities, Skills in Claude. If you cannot access GitHub or create downloadable files here, explain what I need to download and how to package and upload it myself. Do not invent missing files or claim the skill is installed before I upload it.

Paste this prompt into Claude. It packages the skill folder, supporting files included, and walks you through uploading it under Settings, Capabilities, Skills.

0installs
Marketingcategory
MITlicense