A practical scorecard for an agency's own acquisition funnel, signed work, delivery capacity, invoicing, collection, retention, and concentration.
A marketing agency dashboard can be full and still leave the founder blind. Search clicks rise while qualified enquiries fall. Sales signs a website project without checking the design pod. Delivery marks a retainer “done” because the month ended. Finance reports issued invoices beside collected cash. Each number may be real, but the operating story is broken.
This guide builds a measurement dictionary for the agency business itself. It covers the path from an impression for the agency's own marketing through signed work, completed scope, invoices, and collection. A booked job means a signed and scheduled initial engagement or statement of work. A completed job means the agreed initial project or milestone has passed the agency's documented completion rule.
Client campaign reporting stays outside this system. Use the specialist guides for SEO KPIs and content marketing KPIs. Here, you will build:
- a seven-stage acquisition-to-delivery dictionary with evidence for every handoff;
- engagement rules for retainers, projects, sprints, white-label work, and performance-linked scope;
- capacity, collection, retention, and concentration views that preserve cohort logic; and
- a weekly scorecard that turns disagreements into diagnostic questions.
Start with agency decisions, not a giant KPI list
Choose marketing agency KPIs by the decisions they inform: whether acquisition produces qualified work, whether delivery can accept and finish signed scope, and whether completed work becomes collected cash without hidden concentration. A raw metric becomes a KPI only when it has a definition, owner, evidence window, and named operating decision.
Keep the first scorecard compact. Dashboard size measures reporting effort, not management maturity; each row should support an acquisition, delivery, or collection decision.
The boundary matters because agencies operate two measurement worlds. One concerns their own prospects and delivery. The other concerns campaigns run for clients. Mixing them can make a client's large ad account look like agency acquisition, or make client sales look like the agency's collected cash.
| Measurement area | Entity measured | System of record | Accountable owner | Allowed decision | Prohibited inference |
|---|---|---|---|---|---|
| Agency acquisition | Prospect interaction with agency-owned marketing | Search Console, ads, web analytics | Acquisition lead | Inspect source and message | Assume a click became an enquiry |
| Agency sales | Agency enquiry and opportunity | CRM, call/form log, contract system | Sales owner | Review qualification and signed scope | Call an unsigned proposal booked |
| Agency delivery | Signed agency engagement | Project and resource system | Delivery owner | Accept, sequence, pause, or re-scope work | Call active work completed |
| Agency billing/collection | Invoice and cash event | Accounting ledger | Finance owner | Review issue and collection lag | Call invoiced value collected |
| Client campaign performance | Client audience, leads, or sales | Client analytics, ad platform, CRM | Client account owner | Change the client's campaign | Add client results to agency growth |
This measurement layer observes the agency business model you actually run.
Write the seven-stage agency funnel dictionary before calculating rates
Define impression, click, call click, form, qualified enquiry, booked job, and completed job as seven separate records. Give each its own event rule, identifier, timestamp, system, owner, exclusions, and next-stage evidence. If one system cannot supply those fields, keep the later KPI unavailable rather than filling the gap with zero.
| Stage | Exact event rule | ID and deduplication | Timestamp | Source and owner | Exclusions | Next-stage evidence |
|---|---|---|---|---|---|---|
| Impression | Agency-owned result counted under the platform's rule | Platform aggregation; preserve page/query filters | Platform reporting date | Search Console or ad platform; acquisition lead | Client properties, tests, unmatched filters | Platform click record |
| Click | Click to an agency-owned destination | Platform click ID where available; retain aggregation rule | Click time/reporting date | Search/ad platform plus analytics; acquisition lead | Client traffic, bots, internal tests | Eligible session or call/form event |
| Call click | Unique activation of the agency's tracked call control | Event/session ID; remove repeat tests | Event time | Analytics and call-control log; analytics owner | Bots, tests, client traffic, number views | Connected call or intake record; never assumed |
| Form | Unique valid form accepted by the agency backend | Submission ID; merge exact duplicates by written rule | Backend receipt time | Form backend plus analytics; analytics owner | Spam, tests, applicants, vendors, client forms | CRM qualification record |
| Qualified enquiry | Valid call/form passes service, vertical, authority, timing, and capacity rules | CRM person/opportunity ID; consolidate duplicates | Qualification decision time | CRM and intake evidence; sales owner | Spam and duplicates; disqualified prospects remain in denominator | Executed scope plus start slot |
| Booked job | Executed initial scope with recorded start or delivery slot | Contract/opportunity ID; one initial engagement per rule | Last required booking evidence time | CRM, e-sign, project schedule; sales owner with delivery sign-off | Verbal interest, unsigned proposals, undeclared renewals | Acceptance/completion record |
| Completed job | Initial engagement meets its written completion or acceptance rule | Project/engagement ID; no task-count substitution | Acceptance or completion time | Project system and acceptance evidence; delivery owner | Active, canceled, blocked, internal, undeclared renewals | Invoice and collection states |
Search Console reports clicks, impressions, CTR, and average position, while its aggregation rules explain why those counts are not sessions or customers. Google Analytics likewise recommends distinct lead events such as generate_lead, qualify_lead, and close_convert_lead. Your business still has to define what each event means.
Turn a disconnected dashboard into an agency operating review. Map the evidence gaps, owners, and next decisions before adding another metric.
Choose acquisition KPIs by service line and buying motion
Segment acquisition only where the agency can reliably join source, service line, buyer, and engagement records. An SEO retainer, paid-media audit, website build, content sprint, and white-label assignment have different qualification and sales-cycle evidence. Report unattributed records openly; do not force them into the channel that looks most plausible.
A reputation incident may be urgent; a retainer search may take several calls. Urgency remains one qualification field and never replaces signed scope or accepted capacity.
| Engagement type | Qualification rule | Booked-job evidence | Completion rule | Delivery dependency | Invoicing state | Renewal treatment |
|---|---|---|---|---|---|---|
| SEO/content retainer | Fit for recurring scope, market, access, authority, timing, capacity | Executed retainer plus first service period scheduled | Written initial-period deliverables accepted | Access, approvals, specialist capacity | Track issued and collected separately by period | New period/renewal cohort, not initial booking |
| Paid-media management retainer | Platform/access fit, review gates, media responsibility, capacity | Executed scope plus onboarding/start slot | Initial setup milestone passes acceptance rule | Account access, creative, client approvals | Separate fee from pass-through media spend | Recurring periods tracked separately |
| One-time audit or sprint | Defined question, inputs, authority, deadline, capacity | Signed scope plus workshop/delivery slot | Named artifact delivered and accepted | Data access and stakeholder availability | Issued, due, collected, refunded/write-off states | No renewal unless new scope is signed |
| Website or campaign project | Requirements, decision group, launch timing, dependency fit | Executed SOW plus project start | Declared milestone or launch acceptance | Content, design, development, approvals | Track milestone invoices separately | Maintenance or new project is separate |
| White-label delivery | Partner scope, end-client boundaries, volume, review path, capacity | Partner agreement plus assigned work order | Work order passes partner acceptance | Partner briefs, approvals, identity boundaries | Invoice partner; preserve work-order link | Each new order/period follows declared rule |
| Performance-linked arrangement | Attribution, control, baseline, scope, compliance review, capacity | Executed terms plus start slot | Initial contractual milestone, not claimed outcome | Data access and client-controlled actions | Track fixed, variable, issued, disputed, collected separately | Apply the contract's declared period rule |
Label each segment attributable, partial, unattributed, or unavailable. The SBA's planning guidance supports recording actual demand, market, alternatives, and rivals instead of assuming every agency buyer is local.
Use complete formulas, not labels
Every displayed rate needs a numerator, denominator, evidence window, source system, owner, and exclusions. Use unique records from the same declared cohort. These definitions are calculation contracts, not target values.
| KPI | Numerator | Denominator | Evidence window | Source system | Owner | Exclusions |
|---|---|---|---|---|---|---|
| Search CTR | Search Console clicks for selected agency pages/query group | Impressions for identical group | Declared 28 days; like-for-like prior window | Search Console Performance | Marketing owner | Client properties, paid/test traffic, unmatched filters |
| Call-click rate | Unique attributable tracked call clicks | Unique eligible attributable clicks/sessions exposing control | Declared 28-day acquisition window | Analytics + call-control log | Marketing/analytics owner | Tests, bots, client traffic, number views, connected-call assumptions |
| Form completion rate | Unique valid agency forms | Unique attributable eligible landing visits | Declared 28-day acquisition window | Analytics + form backend | Marketing/analytics owner | Spam, tests, duplicates, applicants, vendors, client forms, unreliable attribution |
| Qualified-enquiry rate | Unique enquiries qualified by written rule | All unique valid agency call/form enquiries in cohort | 28-day enquiry cohort + declared qualification lag | CRM/intake + call/form records | Sales owner | Spam, duplicates, applicants, vendors; disqualified stays denominator |
| Booked-job rate | Unique qualified enquiries with executed scope and start slot | All unique qualified enquiries in cohort | 28-day enquiry cohort + declared sales lag | CRM + e-sign + project schedule | Sales owner with delivery sign-off | Unsigned, verbal, duplicates, undeclared renewals/expansions |
| Completed-job rate | Unique booked initial engagements meeting acceptance rule | All unique booked initial engagements in cohort | Booked cohort + declared delivery lag | Project system + acceptance record | Delivery owner | Active, canceled, blocked, internal, undeclared renewals |
Add capacity and delivery KPIs before pushing demand
Measure capacity for each named service line and pod across one declared upcoming four-week window. Start with available client-delivery hours after planned leave and fixed non-client obligations, then compare committed work. Keep rework, scope change, and client-blocked time visible because each calls for a different operating response.
An SEO pod waiting for access, a design pod handling rework, and a paid-media specialist committed to launches face different constraints. One agency-wide percentage hides them.
| Service line | Team/pod | Available client-delivery hours | Committed | Planned leave | Blocked | Scope change | Rework | Owner | Window | Pause-new-work condition |
|---|---|---|---|---|---|---|---|---|---|---|
| Declare one: SEO, paid media, content, web, or white-label | Name accountable pod | After leave and fixed obligations | Signed scheduled scope only | Approved hours | Client dependency hours | Approved change hours | Correction hours by written rule | Delivery lead | Upcoming four weeks | Agency-written evidence condition, not a universal threshold |
Delivery-capacity load uses committed client-delivery hours as numerator and available hours for the same service line/pod as denominator. Its evidence window is the declared upcoming four weeks; its source is the resource-planning/time system; its owner is delivery operations. Exclude unbooked pipeline, unapproved overtime, unconfirmed contractors, and unrelated service lines.
Do not count every nominal work hour as available. Set leave and fixed obligations before the window; preserve the original commitment when approved scope changes.
Connect completed work to invoice and collection states
Track booked job, completed job, invoice issued, cash collected, refund or write-off, and renewal or expansion as separate states. Use the agency's own contract and accounting rules for each transition. An accepted audit can be completed before its invoice is issued, and an issued invoice remains uncollected until cash is recorded.
Key the status ledger to the engagement ID and show where completed scope is waiting. This is an operating control, not accounting, tax, or revenue-recognition advice.
Collected contribution rate has cash collected for a declared completed-engagement cohort minus documented direct delivery labor and direct external fulfillment cost as numerator, and cash collected for that cohort as denominator. Use the completed cohort plus stated collection lag, the accounting ledger joined to time/vendor records, and a finance owner with operations sign-off. Exclude tax, pass-through media, unpaid invoices, undeclared owner labor/overhead, and unposted refunds/write-offs.
Google Ads permits separate website, call, and offline conversion actions and lets the advertiser choose what enters its Conversions column. That flexibility makes a written agency definition essential; a platform conversion label cannot prove contract execution, completion, invoicing, or collection.
Monitor retention and concentration without false precision
Calculate retention, expansion, contraction, and concentration only after declaring the entity, cohort, currency, and observation window. Separate recurring retainers from one-time projects: a project that reaches accepted completion is not churn, while a paused retainer is not retained unless it satisfies the agency's written active-service rule.
Define a logo as a legal customer, billing group, or consolidated family. Service-line retention needs that same entity and service. Expansion and contraction require comparable scope or collected-value rules.
Client concentration uses collected revenue from the largest declared client or consolidated client group as numerator and total collected agency revenue in the same period and currency as denominator. Choose a trailing 90-day or 12-month window before calculation. Use the accounting ledger/customer master with finance ownership. Exclude taxes, pass-through media, intercompany entries, unpaid invoices, and unconsolidated aliases.
No portable concentration, churn, or retention target applies. Review which pod, service line, or payment schedule is exposed if the declared client group changes.
Build one scorecard with owners and stop rules
Use a weekly operating view for acquisition flow, capacity, and data quality, then a monthly cohort view for completion, collection, retention, and concentration. Every row needs a current window, calculation fields, source, owner, exclusions, quality flag, diagnostic question, and next review date. Never substitute universal red-green thresholds.
| Role | Editable source | Definition duty | Dispute duty |
|---|---|---|---|
| Acquisition lead | Campaign taxonomy and marketing annotations | Proposes impression/click/source rules | Reconciles platform and site filters |
| Sales owner | CRM qualification/opportunity state | Approves enquiry and booked-job rules | Resolves qualification and contract evidence |
| Delivery owner | Resource and project state | Approves capacity and completion rules | Resolves scope, block, rework, acceptance |
| Finance owner | Invoice, collection, refund/write-off state | Approves ledger joins and collection definitions | Resolves client aliases and cash matching |
| Founder/GM | Decision log, not underlying records | Approves cross-functional dictionary | Sets stop/change/continue decision and date |
| Metric | Cohort/window | Numerator | Denominator | Source | Owner | Exclusions | Quality | Diagnostic question | Next review |
|---|---|---|---|---|---|---|---|---|---|
| Qualified-enquiry rate | Declared 28-day cohort + qualification lag | Qualified enquiries | All valid enquiries | CRM + intake | Sales | Spam/tests; retain valid disqualified | Complete / partial / unavailable | Did fit change, or did the rule/source change? | Dated decision meeting |
| Delivery-capacity load | Next four weeks; named pod | Committed hours | Available hours | Resource/time system | Delivery | Pipeline, unapproved overtime, unconfirmed contractors | Complete / partial / unavailable | Which dependency or scope change constrains starts? | Dated capacity review |
| Collected contribution rate | Completed cohort + collection lag | Collected cash less declared direct costs | Collected cash | Ledger + time/vendor cost | Finance + operations | Tax, pass-through, unpaid, undeclared cost, unposted adjustment | Complete / partial / unavailable | Is the movement collection timing, scope, labor, or fulfillment? | Dated monthly close review |
End with a stop, change, or continue action, a named owner, and a review date. This is a controlled test, not a performance promise.
Build a scorecard your acquisition, delivery, and finance owners can use together. Start with one decision, one cohort, and the evidence needed to make it.
Diagnose metric disagreements before changing strategy
When two systems disagree, pause the affected conclusion and reconcile record definitions, identifiers, timestamps, filters, and edit history. Most gaps come from measurement mechanics: duplicate forms, spam, call-click inflation, cross-device identity loss, offline close lag, CRM drift, scope changes, late invoices, or refunds posted after reporting.
A common failure appears after a campaign launch: analytics shows 18 call clicks, the intake log shows 11 connected calls, and the CRM shows 6 valid enquiries. Those are three different stages, not competing versions of one number. Keep each count, investigate join coverage, and calculate only the rates whose cohort evidence is complete.
Use this failure-state checklist during reconciliation:
- spam or duplicate enquiry; vendor or job applicant;
- wrong service or target vertical; budget/timing mismatch; no decision authority;
- capacity unavailable; unsigned scope;
- client dependency blocked; scope changed; incomplete delivery;
- invoice not issued; invoice unpaid; refund/write-off; or unattributed source.
For retroactive CRM edits, retain both event and decision timestamps. Let offline-close cohorts mature before comparing them with a completed prior cohort.
Client-side data is another frequent contaminant. An agency may manage a home-services advertiser with thousands of ad clicks and booked service calls. Those records describe the client's campaign. They cannot enter the agency's acquisition or booked-job rate, which concerns the advertiser buying the agency's paid-media service.
Frequently asked questions about marketing agency KPIs
Agency KPI questions usually turn on definitions, evidence, and timing rather than the size of a dashboard. The answers below preserve the boundary between an agency prospect, a signed engagement, completed scope, and client campaign performance. Apply them through your written contract, delivery, CRM, and accounting rules.
What KPIs should a digital marketing agency track?
A digital marketing agency should track its seven acquisition-to-delivery stages, delivery-capacity load, invoice and collection states, retention by engagement type, and client concentration. The useful subset depends on current decisions. Keep client campaign results on a separate dashboard, and mark any KPI unavailable when its numerator, denominator, or cohort evidence is missing.
What is the difference between an agency metric and a KPI?
A metric records an observation; a KPI connects a defined calculation to a decision, owner, evidence window, and review date. Form count is a metric. Qualified-enquiry rate becomes a KPI when the agency defines qualification, preserves disqualified enquiries in the denominator, names the CRM as its source, and uses the result to review intake.
Does a form submission count as a qualified agency lead?
No. A form records a submission, while a qualified enquiry has passed the agency's written checks for service fit, target vertical, decision authority, timing, and available capacity. Spam, job applicants, vendors, and duplicates are excluded from valid forms. Genuine but unsuitable prospects stay visible as disqualified enquiries so intake quality is not overstated.
Does a signed proposal count as a completed agency job?
No. Executed scope plus a recorded start or delivery slot establishes a booked job. Completion occurs only after the initial engagement or milestone passes the written acceptance rule in the project system. An SEO retainer kickoff, an audit delivery, and a website launch therefore need different completion evidence, even when all began with signed proposals.
How should an agency measure retainers versus one-time projects?
Measure retainers and one-time projects in separate cohorts. A retainer needs a recurring service period, renewal treatment, and pause rule. A project needs a defined milestone, acceptance rule, and closeout state. Do not label a successfully completed project as churn, or assume an active retainer has completed merely because its first invoice was paid.
How often should an agency KPI dashboard be reviewed?
Review flow, capacity, and data-quality questions weekly, then review completed engagement, collection, retention, and concentration cohorts monthly. Use longer declared windows where sales, delivery, or collection lag makes a weekly rate immature. The calendar is less important than comparing like-for-like cohorts only after each has had enough time to reach the measured stage.
What should an agency do when CRM and analytics numbers disagree?
Pause the affected decision and reconcile definitions before changing strategy. Compare identifiers, timestamps, filters, attribution windows, duplicate handling, and retroactive edits. Analytics may record a call click while the CRM records only connected enquiries. Preserve both facts, document the gap, and mark the derived KPI unavailable until its required evidence can be joined reliably.
Should client campaign KPIs appear on the agency's own growth dashboard?
No. Client impressions, clicks, forms, calls, sales, and booked work belong to client campaign reporting. The agency growth dashboard measures prospects buying the agency's services, the team's delivery of signed scope, and the agency's collection states. A separate linked view may provide context, but its records must never enter agency-funnel numerators or denominators.
Put the scorecard into operation over 30 days
Implement the scorecard in four weekly passes: define boundaries, instrument the seven stages, join delivery and collection evidence, then run one decision meeting. Do not backfill guessed values. Preserve unavailable fields, record data-quality limits, and let the first complete cohort establish an internal comparison baseline rather than importing an outside benchmark.
- Days 1–7: approve the agency-versus-client boundary, name owners, and document identifiers, timestamps, exclusions, and edit rights.
- Days 8–14: instrument all seven stages. Test calls and forms, but tag and exclude the tests. Confirm that call clicks never masquerade as connected enquiries.
- Days 15–21: add engagement-type completion rules, the four-week capacity card, invoice states, collection evidence, and consolidated client identities.
- Days 22–30: populate the weekly view, mark incomplete KPIs unavailable, choose a next review date, and log one stop, change, or continue decision.
The agency's growth sequence can then use this dictionary without confusing activity with evidence; see the marketing agency growth guide for that wider operating plan. If content production is one capacity constraint, the Content SEO module can research keywords, draft content, score and queue it, and publish it to a connected CMS. Its use alone does not prove any acquisition or financial KPI moved.
Leave with a measurement dictionary your team can defend. Connect agency demand, signed scope, delivery, and cash without inventing the missing stages.
Sources & references
Blog SEO, Local SEO, and Social Media — one dashboard, no headaches.