At Choco Media, we spent most of our first year tracking too many things. Agency weekly metrics reviews that took 45 minutes because we were scrolling through dashboards that showed everything except what we actually needed to decide on. That changed when we cut our review from seventeen tracked numbers down to five. This post is about what we track in our agency weekly review today, what we stopped tracking, and the simple Google Sheet setup that replaced two different reporting tools.
If you run a small agency — five people or fewer, retainer-based, doing anything from content to paid media to brand — this is written for you. We are not a ten-person team with a dedicated ops person and a BI tool. We are a small Finnish AI-first marketing agency, and our weekly review needs to fit in thirty minutes on a Monday morning, not expand to fill the time available.
What follows is not a framework from a consulting firm. It is the actual list we use, including the things we tried and stopped, and the reasoning behind each cut.
Why most agency weekly reviews drift into noise
The pattern we see repeatedly — in our own history and in conversations with other small agencies — is that the weekly review starts lean and useful, then accumulates metrics the way a codebase accumulates dead functions. Someone adds a channel-specific metric after a client asks about it. Someone else adds a conversion metric because it felt relevant one week. Over time, the review becomes a reporting exercise rather than a decision-making one.
The test we now apply to every candidate metric is simple: does tracking this number weekly change what we do on Tuesday? If the answer is no — if we would act the same way regardless of what the number says — it does not belong in a weekly review. It might belong in a monthly report. It might belong in a quarterly review. But not here.
- A metric is worth weekly attention if it can trigger a specific action within that week.
- If the appropriate response to a bad number is “wait and see,” track it monthly instead.
- If the metric requires context from two other metrics to be interpretable, it is a monthly metric.
- If you added it because a client asked once and you never removed it, remove it now.
The discipline of the weekly review is in what you leave out, not what you include.
The five numbers we actually look at
Here are the five metrics in our current weekly review. We will get into each in detail, but first the list:
- Active retainer count and any changes from the previous week
- Proposals sent and their current status
- Deliverable completion rate for the past seven days
- Open flags from clients — anything that requires a response or a decision
- AI tool costs for the week (spend across all production tools)
That is it. Five data points, three of which take less than sixty seconds each to check. The review itself runs between twenty and thirty minutes, including a five-minute discussion of anything that looks off.
Active retainer count: the number that runs the business
We are a retainer-based agency. Our revenue is predictable because our clients are on fixed monthly agreements. The single most important number in any week is how many active retainers we have and whether that number changed.
We track this manually in a Google Sheet with one row per client: name, retainer tier, start date, next renewal date, and a status field (active / at-risk / churned). The at-risk flag is a human judgment call — we mark a client at-risk if we have seen signals of disengagement in the past two weeks, whether that is slower response times, a missed check-in, or a conversation that felt like scope dissatisfaction.
- Active count this week vs. last week
- Any new starts since the last review
- Any clients moved to at-risk since the last review
- Any renewals due within the next 30 days
We do not track revenue in the weekly review. Revenue follows from retainer count, and calculating it weekly adds time without adding a decision. We look at revenue monthly.
Proposals sent and pipeline status
We track every proposal sent in a second tab of the same Google Sheet: prospect name, proposed tier, date sent, and status (sent / follow-up sent / won / lost / stale). Stale means no response in fourteen days and we have sent one follow-up. We do not send a third chase. Stale proposals close automatically after thirty days.
In the weekly review, we look at:
- How many proposals are currently open (sent but not resolved)
- Whether anything moved to won, lost, or stale since last week
- Whether any open proposal is approaching fourteen days without a response and needs a follow-up
“Pipeline is only meaningful if you close the loop. We used to let proposals sit for weeks because nobody owned the follow-up. Now one person checks this every Monday and the whole picture takes two minutes to review.”
We do not track pipeline value in the weekly review. Multiplying proposed value by close probability gives a false sense of precision at the small numbers we work with. We track the count and the actions required, not a projected revenue number.
Deliverable completion rate
Every retainer client has a monthly deliverable set — the specific outputs we committed to in their brief. We track weekly whether we are on pace, because a Friday delivery crunch almost always traces back to a slow Monday through Wednesday. Checking mid-week lets us redistribute load before it becomes a problem.
The metric is simple: deliverables completed in the past seven days divided by deliverables that were due in that window. We aim for a completion rate above ninety percent on a rolling basis. Anything below eighty percent in a given week triggers a quick retrospective: what slipped and why?
- We use a shared project management column (we run Notion) with a due date on every deliverable.
- The person who owns each deliverable marks it complete when it is sent or approved.
- The sheet pulls from Notion via a weekly manual update — we considered an automated sync and decided the manual step is useful because it forces a real check rather than a status field that never gets updated.
For more on how we manage client deliverables within retainer relationships, the post on quarterly reviews with retainer clients explains the longer rhythm this weekly check feeds into.
Open client flags
Every Monday, we run through all active client communication channels — email, Slack, wherever a given client prefers — and flag anything that requires a response, a decision, or a follow-up action. This is not a full inbox review. It is specifically about items that are waiting on us, not waiting on the client.
We call these flags rather than tasks because they are not scheduled work — they are blockers. A client waiting on a decision is a relationship risk, and we want to surface those explicitly rather than let them sit in an inbox until someone remembers to reply.
- Any question from a client that has been open more than 48 hours without a response
- Any approval request we sent that the client has not yet actioned (we log these so we can follow up)
- Any deliverable that is waiting on client feedback before we can proceed
The output of this section of the review is a short action list — who responds to what, by when. It takes five to ten minutes and it is arguably the part of the review with the highest direct impact on client retention.
AI tool costs for the week
We are an AI-first agency. That means our tooling costs scale with production volume in a way that a traditional agency’s costs do not. A week with heavy content output costs more in API and tool fees than a light week. We track this weekly because the number can drift up without anyone noticing, and because it is useful context when we are evaluating whether a particular workflow is genuinely efficient or just impressive-feeling.
We track spend across:
- Claude API (our primary writing and reasoning model)
- Midjourney (when we produce AI-assisted imagery for clients)
- Any other tools billed by usage rather than flat monthly fee
The flat-fee tools — Notion, our project management setup, analytics — go into the monthly P&L, not the weekly review. Only usage-based costs get weekly attention because those are the ones that can surprise you.
Our AI automation service for clients involves building these kinds of cost-aware systems, and tracking our own tool spend honestly has been useful for advising clients on what their AI-assisted production actually costs at scale.
What we stopped tracking weekly (and where it went)
Here is the list of things we removed from the weekly review, and where the information went instead:
Website traffic
We track traffic monthly. Week-to-week variation is mostly noise at our traffic levels, and the actions we take in response to traffic data (content strategy, SEO work) operate on a monthly or quarterly cycle anyway. Moving this to monthly removed ten minutes of dashboard-checking that changed nothing.
Individual campaign metrics per client
Client-specific paid media and SEO metrics belong in client reports, not our internal weekly review. We review these when we prepare client reports, not as a standing agenda item. The exception is a campaign that is actively in a launch window — that gets flagged temporarily under open client flags.
Social media engagement
We removed this entirely from the internal review. Social engagement for our own channels is a brand-building activity that we assess quarterly. Individual post performance is not a weekly decision-making input for a small agency. If we see an unusual spike, someone mentions it in passing. That is sufficient.
Team utilisation percentage
We experimented with tracking a rough utilisation number — estimated hours used versus available — and stopped after six weeks. The number was never precise enough to be actionable, and the exercise of estimating it took longer than it was worth. Deliverable completion rate gives us the information we actually need about capacity without the overhead.
Lead volume from inbound channels
Inbound lead counts went to a monthly review. Leads need time to develop into proposals, and a weekly count creates pressure to interpret noise as signal. We do track whether any new inbound lead came in, as a binary yes/no that feeds into the proposals section — but we do not count or compare lead volumes week over week.
The Google Sheet structure that makes this work
The entire weekly review lives in one Google Sheet with three tabs: Retainers, Pipeline, and Weekly Log. The Weekly Log tab has one row per week with a date and a note field for anything discussed or decided. We do not build dashboards. We do not connect to APIs. The sheet is updated manually before the Monday review, which takes about ten minutes in total.
The constraint of manual updates is intentional. When someone has to physically type the numbers, they are more likely to notice when something looks off. Automated dashboards surface information passively; manual entry forces active engagement. For a team of our size, the ten minutes of prep time is a worthwhile trade.
- Retainers tab: one row per client, updated when status changes
- Pipeline tab: one row per proposal, updated when status changes
- Weekly Log tab: one row per Monday, filled in during the review itself
If you are looking at how we handle the bigger picture of what we track at the agency level, including how AI-assisted reporting fits into our workflow, the post on AI reporting automation covers the client-facing side of the same question.
How long the review actually takes
On a normal week: twenty to twenty-five minutes. On a week where something has changed — a client moved to at-risk, a proposal came in, a delivery slipped — thirty to thirty-five minutes. We have never run one that went over forty minutes since we cut down to five metrics.
The structure is:
- Retainer count and changes — 3 minutes
- Pipeline status and actions — 5 minutes
- Deliverable completion check — 3 minutes
- Client flags and action assignment — 10 minutes
- AI tool costs — 2 minutes
- Anything else, open discussion — 5 minutes max
The open discussion section has a hard cap because it is the section that expands to fill time if you let it. Five minutes. If something needs more discussion, it gets a separate meeting.
Running this review solo
Everything above assumes a small team. If you run a solo agency, the review becomes a ten-minute Monday morning habit rather than a meeting. The same five metrics, the same sheet, the same discipline about what to cut. The only difference is that there is no discussion phase — you make the call yourself on anything that needs attention.
We have worked with sole-operator agencies and the value of the weekly review is arguably higher in that context, because there is no one else to notice when something is drifting. The Monday discipline of sitting down with five clear numbers creates the external structure that a team meeting would otherwise provide.
If you are building agency operations from scratch and want a clearer picture of how the weekly review fits into the broader rhythm of how we run Choco Media, the post on how a small AI-first agency runs in 2026 covers the full operational model.
One thing we are still figuring out
We have not solved the question of how to track referral relationships in a way that feeds into the weekly review without adding noise. We get a meaningful share of new clients through referrals from past clients and industry contacts, and we would like a better signal on whether that network is healthy — not just when a referral converts, but whether we are in regular enough contact with the people who refer. We have tried a light CRM approach and found it adds overhead without changing behaviour. This is still open.
If you have solved this elegantly for a small agency, we are genuinely interested. Reach out — it is the kind of operational question we enjoy discussing.