AGENCY WORKED EXAMPLE
Write a monthly client report from supplied KPIs
A fictional agency reporting example with a complete KPI table, checked calculations, a worked narrative, and a review process that separates observations from explanations.
By LibSkills editorial · Updated
A monthly report should make the supplied numbers understandable and the next decisions clear. It should also preserve uncertainty. A lower cost per lead can be calculated from a table; an explanation for that change requires additional evidence.
Example status: Fictional, hand-authored reference example. The organizations, campaign data, and context below are invented for demonstration. This is an editorial walkthrough, not an AI test run, a customer case study, or a benchmark.
A monthly marketing report workflow
Check the reporting period, source definitions, and comparison scope first. Calculate changes from the supplied data, then write a summary that separates observations from possible explanations. Finish with evidence gaps and proposed decisions for the account lead to review. The table and narrative below make each step reproducible without an AI tool.
Use the same order when preparing a repeatable team process. A skill package and a saved prompt can both describe the task; the useful test is whether the resulting report preserves the source facts and uncertainties.
Start with the source register
Northline Studio is preparing an August update for fictional client Cedar Desk. The example packet contains two full calendar months for one fictional paid campaign. The reporting currency is USD and both monthly exports use the same example account time zone, UTC.
The figures below are treated as approved supplied inputs within the fictional scenario. In a real workflow, the account lead must check the actual export, date range, filters, currency, and definitions. A language model reading a spreadsheet cannot certify its provenance.
| Source | Supplied record | Reporting implication |
|---|---|---|
| KPI export, K-01 | Full months July 1–31 and August 1–31, 2026; one campaign; identical filters and UTC reporting time zone. | Compare the two monthly totals within that scope. |
| Metric dictionary, M-01 | Clicks are ad clicks. Leads are the campaign's reported lead conversion events under an unchanged attribution window. | Use clicks as the denominator for click-to-lead rate; do not call lead events unique buyers. |
| Metric dictionary, M-02 | Spend is campaign media spend in USD. Revenue, agency fees, qualified leads, and purchases are absent. | Calculate media cost per lead; do not calculate profit, ROAS, or customer acquisition cost. |
| Account note, N-01 | Two new ad-copy variations went live August 10. No controlled comparison was supplied. | Mention a change in activity without assigning causation. |
| Account note, N-02 | The account lead reports the conversion definition and attribution window were unchanged. No independent tracking audit was supplied. | State the supplied consistency assumption and the limit of verification. |
| Client objective, O-01 | Client wants more inquiries while understanding media efficiency. No numerical target or quality threshold is supplied. | Discuss volume and cost; do not declare that a target was met. |
Supplied KPI table
| Metric | July 2026 | August 2026 |
|---|---|---|
| Media spend | $3,000 | $3,600 |
| Impressions | 200,000 | 240,000 |
| Ad clicks | 4,000 | 6,000 |
| Reported lead events | 80 | 90 |
No revenue or qualified-lead table accompanies the packet. No daily breakdown, device split, platform comparison, tracking audit, or experimental result is supplied. Their absence is a limitation, not a zero value.
Calculate before writing the narrative
Compute derived measures from the same scope and preserve their denominators. The relative change formula is (current − previous) / previous × 100. For rates, distinguish a percentage-point change from a relative percentage change.
| Measure | Formula | July | August | Change |
|---|---|---|---|---|
| Media spend | Supplied | $3,000 | $3,600 | +$600; +20% |
| Impressions | Supplied | 200,000 | 240,000 | +40,000; +20% |
| Ad clicks | Supplied | 4,000 | 6,000 | +2,000; +50% |
| Reported lead events | Supplied | 80 | 90 | +10; +12.5% |
| Click-through rate | Clicks ÷ impressions × 100 | 2.00% | 2.50% | +0.50 percentage points; +25% relative |
| Cost per click | Spend ÷ clicks | $0.75 | $0.60 | −$0.15; −20% |
| Click-to-lead rate | Lead events ÷ clicks × 100 | 2.00% | 1.50% | −0.50 percentage points; −25% relative |
| Media cost per reported lead | Spend ÷ lead events | $37.50 | $40.00 | +$2.50; approximately +6.7% |
For example, August cost per lead is $3,600 ÷ 90 = $40.00. Its relative increase is ($40.00 − $37.50) ÷ $37.50 × 100 ≈ 6.7%. The click-through rate increase from 2.00% to 2.50% is 0.50 percentage points; calling it a “0.50% increase” would obscure the scale.
If a denominator is zero, the derived measure is undefined for that period. Leave it unavailable and explain why. If a row is absent or its scope differs, resolve the source issue before comparing it; do not invent a value to complete the report.
Worked monthly report draft
Draft for internal review — Cedar Desk, August 2026
August recorded 90 lead events, up from 80 in July, while media spend rose from $3,000 to $3,600. Lead volume increased by 12.5% and spend by 20%, so media cost per reported lead increased from $37.50 to $40.00, approximately 6.7%.
The campaign generated more clicks at a lower cost per click. Clicks rose by 50%, click-through rate increased from 2.00% to 2.50%, and cost per click decreased from $0.75 to $0.60. However, the proportion of clicks associated with reported lead events decreased from 2.00% to 1.50%. Traffic efficiency and reported lead efficiency therefore moved in different directions.
Two new ad-copy variations went live on August 10, according to the supplied account note. The monthly comparison does not isolate their effect. It also does not establish whether the additional lead events represent higher-quality inquiries or additional customers; qualified-lead and revenue data were not supplied.
Observations, questions, and proposed actions
| Observation from the packet | Question to investigate | Proposed action for account-lead review |
|---|---|---|
| Clicks grew 50%, while lead events grew 12.5%. | Did the mix of clicks, landing-page behavior, or reported conversion events change? | Request daily campaign and landing-page records using the same dates and metric definitions. |
| Click-through rate improved and cost per click fell. | Did the new copy affect the mix, or did other campaign conditions change? | Compare available ad-level and date-level records; identify confounding changes before attributing the result. |
| Cost per reported lead rose to $40.00. | Is this cost acceptable for inquiries that meet the client's criteria? | Ask for an approved inquiry-quality definition and a matching lead-quality summary. |
| Revenue and purchases are absent. | What business outcome should the report eventually connect to? | Agree which downstream records can be provided and how their scope relates to these lead events. |
These actions are proposals. The example does not access client accounts, request records from a third party, change budgets, or execute campaign changes.
Decisions still needed
Confirm a measurable objective for the next reporting period, decide how inquiry quality will be assessed, and establish whether additional data can support the investigation. The current packet does not justify a budget increase, a claim that the campaign is profitable, or a promise that the proposed actions will improve results.
Reviewer checks and correction examples
This checklist is a review method, not evidence that an independent reviewer has signed off on the prototype.
| Check | Expected finding |
|---|---|
| Source scope | Both periods are complete 31-day months from the same fictional campaign, filters, currency, and stated time zone. |
| Definitions | “Lead events” is preserved; the text does not substitute customers, unique people, or qualified leads. |
| Totals | Spend increased $600 and lead events increased 10. |
| Derived calculations | August CTR is 6,000 ÷ 240,000 = 2.50%; click-to-lead rate is 90 ÷ 6,000 = 1.50%; cost per lead is $40.00. |
| Rate language | Changes of +0.50 and −0.50 are labeled percentage points where appropriate. |
| Causality | New copy is recorded as context, with no unsupported attribution of the monthly change. |
| Business outcomes | Profit, ROAS, customer acquisition cost, and lead quality remain unavailable. |
| Action boundary | Proposed investigations and decisions require account-lead review before execution. |
A sentence such as “the new copy drove 50% more leads” fails two checks: clicks increased 50%, whereas lead events increased 12.5%; and the packet contains no causal comparison. Replace it with: “Clicks increased 50% and lead events increased 12.5%. New copy went live during August, but its effect has not been isolated.”
Similarly, “conversion fell 25 percentage points” is incorrect. The click-to-lead rate fell from 2.00% to 1.50%: a decrease of 0.50 percentage points, or 25% relative to July's rate.
Common questions
Which KPIs should go into a monthly agency report?
Use measures connected to the client's agreed objective, with clear definitions and comparable periods. This fictional example includes media spend, impressions, ad clicks, and reported lead events because those are the supplied records. It cannot support a revenue or profitability conclusion without the relevant business data.
How do you report a KPI with a missing or zero value?
Keep missing values separate from zero. A zero denominator makes a ratio undefined; it is not a 0% result. Mark the calculation unavailable, explain the reason, and request the missing source or definition before comparing performance.
Can a report explain why performance changed?
It can state known changes and frame questions to investigate. A month-to-month table alone does not isolate causes. In this example, the new ad copy is context; the data does not establish its effect on leads or costs.
Does the LibSkills reporting workflow connect to analytics accounts?
The Monthly Client Report Writer preview expects a supplied KPI table, metric definitions, and campaign context. It describes an editable report draft; it does not include account connections, scheduled delivery, or automatic campaign changes.
Methodology and limitations
This is one fictional, hand-authored reference case with arithmetic reproducible from the displayed table. It demonstrates the intended relationship between input, calculation, narrative, and review. It does not demonstrate model reliability, statistical significance, time savings, host compatibility, or performance on real agency data. No author or reviewer is represented as verified.
Before a product claims evaluated performance, retain actual test outputs and configurations, test missing values and inconsistent periods, record reviewer corrections, and report the number of cases evaluated. See the quality methodology for the prototype's current evidence status.
Inspect the input contract for the Monthly Client Report Writer. For a different stage of the same client relationship, use the Client Proposal Builder and its discovery-to-proposal example. The free Client Brief Completeness Check offers a smaller starting point for finding missing client-brief information; it does not audit a KPI export.
Check the inputs first.
A free prototype for surfacing the gaps in a client brief.