name: quarterly-business-review-prep-runner description: > Runs the full quarterly business review prep — client profitability analysis, revenue performance, practice mix, pipeline metrics, pattern identification, and next-quarter priorities. Third week before quarter end. 60 minutes. metadata: author: "Kathryn Brown, Practice Builders" version: "1.0.0" date: "2026-04-28" sop: "Quarterly Business Review Prep" category: "Operations & Admin" frequency: "Quarterly" estimated-time: "60 min" trigger: "Third week before quarter end"
Quarterly Business Review Prep — Runner
You are executing the Quarterly Business Review Prep SOP for an independent consultant. Most solo practitioners end each quarter without a structured look at what the practice actually produced versus what was planned. This runner builds a complete QBR document three weeks before quarter close — enough runway to act on what you find before the new quarter starts.
Do not skip steps. Do not ask questions across multiple turns — collect everything upfront.
What you'll have when this is done: A complete QBR document with revenue performance, client profitability rankings, practice mix analysis, pipeline metrics, and 2-3 named priorities for next quarter — ready to act on before the new quarter starts.
Step 1: Collect Your Inputs
Ask the user for the following (all at once, in a single prompt):
Revenue Data:
- Total revenue collected this quarter (actual cash received, not invoiced)
- Revenue target for this quarter (if set)
- Prior quarter's revenue collected (if available, for trend comparison)
- Revenue broken down by client
Client Engagement Data — for each active engagement this quarter:
- Client name
- Engagement type (retainer, project, advisory)
- Monthly fee or total quarterly fee
- Contracted hours (what the SOW states or implies)
- Actual hours per month (total time including meetings, email, prep, admin, revision cycles — be honest)
- Any scope changes, extensions, or exits during the quarter
- Source (referral, inbound, outbound, repeat) — for new clients only
Client Movement:
- New clients started this quarter (name, type, monthly value, source)
- Clients lost this quarter (name, reason, monthly value lost, whether anticipated)
- Expansions (existing clients who increased scope or rate)
- Renewals (retainer clients who renewed, and at what terms)
- Client count at start of quarter vs. end of quarter
Capacity Data:
- Total hours worked this quarter (across all activities)
- Total billable hours this quarter
- Prior quarter's hours and billable hours (if available)
Pipeline Data:
- Deals entered this quarter (count and value)
- Deals closed this quarter (count and value)
- Deals lost this quarter (count and value)
- Deals stalled this quarter (count and value)
- Average time to close (if known)
- Prior quarter's pipeline metrics (if available)
Key Decisions:
- Any significant decisions made this quarter (pricing changes, new service offerings, client exits, tool investments, hiring, marketing shifts)
- For each: what you decided, why, and what happened
Practice Parameters:
- Your target hourly rate (the rate you consider profitable)
- Hours spent on business development this quarter (estimate is fine)
If the user doesn't have exact numbers, accept estimates and note where precision would improve the analysis.
Step 2: Client Profitability Analysis
Using the per-client data from Step 1, calculate profitability for every engagement active during the quarter.
2A. Per-Client Profitability Table
For each client, calculate:
- Monthly fee — as provided
- Contracted hours — what the SOW states or implies
- Actual hours per month — total time spent (meetings, email, prep, admin, revision cycles)
- Effective hourly rate — monthly fee / actual hours per month. Round to the nearest whole number.
- Hours variance — actual hours minus contracted hours. Positive = overdelivering.
- Opportunity cost — hours variance x target hourly rate. This is revenue forfeited on uncompensated time.
| Client | Monthly Fee | Contracted Hrs | Actual Hrs | Effective Rate | Variance | Opportunity Cost |
|---|---|---|---|---|---|---|
| [Client A] | [\$X] | [X] | [X] | [\$X] | [+/- X] | [\$X] |
2B. Scope Creep Audit
For each client where actual hours exceed contracted hours, identify:
- Out-of-scope activity — specific work outside the SOW
- Frequency — weekly, ad hoc, project-triggered
- Hours per month consumed
- Root cause — unclear SOW, client expectations, relationship dynamics, failure to push back
- Difficulty to address — easy (conversation), moderate (SOW revision), hard (embedded in relationship)
Calculate per client:
- Scope creep as % of total hours — uncompensated hours / total hours on this client
- Revenue equivalent — scope creep hours x target hourly rate
2C. Profitability Ranking
Rank all clients by effective hourly rate, highest to lowest. Assign categories:
- Healthy — effective rate at or above target rate
- At risk — effective rate within 20% below target
- Underperforming — effective rate more than 20% below target
Calculate portfolio metrics:
- Weighted average effective rate — across all clients, weighted by hours
- Revenue at risk (monthly) — gap between target rate and effective rate for underperforming clients, multiplied by their hours
- Portfolio health — percentage of clients in each category
2D. Client Recommendations
For each underperforming and at-risk client, provide:
- Signal — what the analysis identified (e.g., "effective rate of \$X vs. target of \$Y, driven by scope creep consuming Z hours/month")
- Do This — specific action with conversation language:
- For scope: "At your next check-in, say: 'I want to review what we're covering against our original scope. I've noticed we've added [specific items]. I'd like to either adjust the scope or update the fee to reflect the actual workload.'"
- For fee adjustments: name the target fee and justification
- For disengagement: criteria for when to exit (e.g., "if effective rate doesn't improve within 60 days of the scope conversation")
- Timeline — when to act
Sequence: scope conversation first, then fee adjustment, then disengagement. Never recommend disengagement as a first step.
Step 3: Financial Summary
Using the revenue data from Step 1 and the profitability output from Step 2, build the quarter's financial picture.
| Metric | This Quarter | Last Quarter | Change |
|---|---|---|---|
| Revenue collected | [\$X] | [\$X] | [+/-%] |
| Revenue target | [\$X] | [Over/Under %] | |
| Effective hourly rate | [\$X] | [\$X] | [+/-%] |
| Largest client % of revenue | [Client: X%] | [Flag if >30%] |
Calculate:
- Effective hourly rate — total revenue collected / total hours worked (all hours, not just billable). This is the number most solo consultants never calculate and it's the most revealing.
- Revenue by client — break down who contributed what. Flag any client representing more than 30% of quarterly revenue as a concentration risk.
- Revenue trend — compare to previous quarter if data available. Up, down, or flat, with magnitude.
If no revenue target was set, note this as a gap.
Write one paragraph of interpretation: what the numbers say about the quarter's financial health.
Step 4: Practice Mix and Client Concentration
4A. Practice Mix
Calculate the revenue split between engagement types:
| Type | Revenue | % of Total |
|---|---|---|
| Retainer | [\$X] | [X]% |
| Project | [\$X] | [X]% |
| Advisory | [\$X] | [X]% |
Assess: Were shifts in mix strategic (intentional rebalancing) or reactive (taking whatever showed up)? A practice that drifts toward 100% project work without intending to has a pipeline sustainability problem.
4B. Client Concentration Risk
If any single client represented more than 30% of quarterly revenue, flag it explicitly:
- Client name and percentage of revenue
- Dependency risk level — moderate (30-40%), high (40-50%), critical (50%+)
- Mitigation — add a pipeline diversification priority for next quarter
4C. Client Movement Summary
| Event | Client | Type | Monthly Value | Source/Reason |
|---|---|---|---|---|
| Won | [Client] | [Type] | [\$X] | [Source] |
| Lost | [Client] | [Type] | [\$X] | [Reason] |
| Expanded | [Client] | [Type] | [+\$X] | [What changed] |
| Renewed | [Client] | [Type] | [\$X] | [Terms] |
Net change: [Start count] to [End count] ([+/- X]) Acquisition cost: ~[X] hours per new client (BD hours this quarter / new clients won) Churn analysis: Were losses anticipated (project completions) or unexpected (cancellations)? Anticipated churn is healthy. Unexpected churn is a signal.
Step 5: Capacity and Utilization Review
| Metric | Value |
|---|---|
| Total hours worked | [X] |
| Billable hours | [X] |
| Billable utilization | [X]% |
| Avg weekly hours | [X] |
Calculate billable utilization: (billable hours / total hours) x 100
Interpret using these zones:
- 50-65%: Healthy. Room for strategic work and new business.
- 65-75%: Optimal. Tight but sustainable.
- 75-85%: Overextended. No new starts without offloading.
- 85%+: Red zone. Delivery quality at risk.
Compare to prior quarter if data available. Identify:
- Utilization trend — increasing, decreasing, or stable
- Hidden capacity drains — non-billable activities that consumed more time than expected
Write one paragraph interpreting capacity health and sustainability.
Step 6: Pipeline Metrics
Assess the quarter's pipeline performance and the pipeline entering the new quarter:
| Metric | This Quarter | Last Quarter | Change |
|---|---|---|---|
| Deals entered | [X] | [X] | [+/-] |
| Deals closed | [X] | [X] | [+/-] |
| Deals lost | [X] | [X] | [+/-] |
| Avg time to close | [X days] | [X days] | [+/-] |
| Conversion rate (proposals to wins) | [X]% | [X]% | [+/-] |
If close rate shifted significantly from prior quarter, identify whether the cause is:
- Upstream (targeting) — wrong prospects entering the pipeline
- Downstream (proposal quality) — right prospects but losing at proposal stage
Calculate pipeline coverage ratio if next quarter's target is known:
- Pipeline coverage — total pipeline value / next quarter's revenue target
- Below 2x is thin. Above 3x is healthy.
Write one paragraph assessing pipeline health entering the new quarter.
Step 7: Decision Audit
Review each key decision made this quarter. If "no major decisions were made," that itself is a finding — a quarter of pure execution with no strategic decisions might mean you're on autopilot.
| Decision | Rationale | Outcome | Verdict | Next Step |
|---|---|---|---|---|
| [Decision] | [Why at the time] | [What happened] | [Right/Wrong/TBD] | [Continue/Reverse/Modify] |
Step 8: Pattern Identification
Look across all sections and name 2-4 patterns. Each pattern must include:
- Signal — what combination of data points revealed this pattern
- Pattern — what it means in plain language
- Implication — what happens if this continues unchanged into next quarter
Common patterns to check for:
- Revenue up but pipeline down = harvesting without planting
- Utilization up but revenue flat = effective rate is declining (scope creep or underpricing)
- Client wins but from one source = referral dependency risk
- Decisions mostly reactive = no strategic direction, just responding to what lands
- Revenue down + utilization up = pricing problem
- Revenue up + pipeline empty = next-quarter risk
- Client wins but no expansions = missed upsell opportunities
Every identified pattern must cite specific data points from the analysis sections. Do not generate abstract patterns disconnected from the numbers.
Step 9: Next-Quarter Priorities
Based on what the review surfaced, identify 2-3 priorities for next quarter. Maximum 5.
Each priority must:
- Name a specific constraint and a specific fix — not a directional aspiration
- Trace to a signal in the data (which section, which number)
- Include a success criterion measurable in the next QBR
"Grow revenue" is not a priority. "Replace the client concentration risk by adding two retainer engagements" is a priority with a measurable outcome.
Step 10: Assemble the QBR Document
Combine all outputs into a single document:
# Quarterly Business Review: [Q# Year]
**Period:** [Start date] — [End date] | **Prepared:** [Date]
## Client Profitability
### Profitability Summary
| Client | Monthly Fee | Contracted Hrs | Actual Hrs | Effective Rate | Variance | Category |
|--------|-----------|---------------|-----------|---------------|----------|----------|
| [Client A] | [$X] | [X] | [X] | [$X] | [+/- X] | [Healthy/At Risk/Underperforming] |
### Portfolio Metrics
| Metric | Value |
|--------|-------|
| Weighted avg effective rate | [$X] |
| Revenue at risk (monthly) | [$X] |
| Healthy | [X]% of clients |
| At risk | [X]% of clients |
| Underperforming | [X]% of clients |
### Scope Creep Detail: [Client Name]
[Table per affected client]
### Recommendations
[Numbered recommendations with Signal, Do This, Timeline]
## Financial Summary
| Metric | This Quarter | Last Quarter | Change |
|--------|-------------|-------------|--------|
| Revenue collected | [$X] | [$X] | [+/-%] |
| Revenue target | [$X] | | [Over/Under %] |
| Effective hourly rate | [$X] | [$X] | [+/-%] |
| Largest client % of revenue | [Client: %] | | [Flag if >30%] |
**Assessment:** [One paragraph.]
## Practice Mix
| Type | Revenue | % of Total |
|------|---------|-----------|
| Retainer | [$X] | [X]% |
| Project | [$X] | [X]% |
| Advisory | [$X] | [X]% |
**Assessment:** [Strategic or reactive shifts.]
## Client Movement
| Event | Client | Type | Monthly Value | Source/Reason |
|-------|--------|------|--------------|---------------|
| Won | [Client] | [Type] | [$X] | [Source] |
| Lost | [Client] | [Type] | [$X] | [Reason] |
| Expanded | [Client] | [Type] | [+$X] | [What changed] |
| Renewed | [Client] | [Type] | [$X] | [Terms] |
**Net change:** [Start count] → [End count] ([+/- X])
**Acquisition cost:** ~[X] hours per new client
## Capacity & Utilization
| Metric | Value |
|--------|-------|
| Total hours worked | [X] |
| Billable hours | [X] |
| Billable utilization | [X]% |
| Avg weekly hours | [X] |
**Assessment:** [One paragraph with sustainability interpretation.]
## Pipeline Entering [Next Quarter]
| Metric | This Quarter | Last Quarter | Change |
|--------|-------------|-------------|--------|
| Deals entered | [X] | [X] | [+/-] |
| Deals closed | [X] | [X] | [+/-] |
| Deals lost | [X] | [X] | [+/-] |
| Conversion rate | [X]% | [X]% | [+/-] |
| Pipeline coverage ratio | [X]x | | |
**Assessment:** [One paragraph.]
## Decision Audit
| Decision | Rationale | Outcome | Verdict | Next Step |
|----------|-----------|---------|---------|-----------|
| [Decision] | [Why] | [What happened] | [Right/Wrong/TBD] | [Continue/Reverse/Modify] |
## Patterns
**1. [Pattern name]**
- Signal: [Data points from specific sections]
- Meaning: [Plain language]
- Implication: [What happens if unchanged]
**2. [Pattern name]**
- Signal: [Data points from specific sections]
- Meaning: [Plain language]
- Implication: [What happens if unchanged]
## Next Quarter Priorities
**1. [Priority]**
- Signal: [What in this QBR triggered it]
- Success criterion: [How you'll measure it in the next QBR]
**2. [Priority]**
- Signal: [What in this QBR triggered it]
- Success criterion: [How you'll measure it in the next QBR]
**3. [Priority]**
- Signal: [What in this QBR triggered it]
- Success criterion: [How you'll measure it in the next QBR]
SOPs to Trigger
Based on the review, check whether any of the following SOPs should be triggered:
- [ ] Monthly Financial Review — if any month in the quarter was not reviewed
- [ ] Capacity Planning Update — if utilization data was stale or incomplete
- [ ] Pipeline Review — if pipeline coverage ratio is below 2x entering the new quarter
- [ ] Client Profitability Analyzer — if any engagement needs deeper scope creep investigation beyond what this review surfaced
Quality Check (Internal — never shown to the user)
Before presenting the output, verify:
| Check | Requirement |
|---|---|
| Numbers complete | Are revenue, hours, client count, and pipeline all populated with actual data? |
| Effective rate calculated | Is the effective hourly rate included (total revenue / total hours, not just billable hours)? |
| Concentration flagged | Is any client above 30% of revenue explicitly called out as a concentration risk? |
| Profitability ranked | Are all clients ranked by effective hourly rate with a health category assigned? |
| Scope creep quantified | Is every identified scope creep activity converted to hours and a revenue equivalent? |
| Recommendations specific | Does every recommendation include exact conversation language or a specific action, not just "address scope creep"? |
| Portfolio view | Is there a portfolio-level summary (weighted avg rate, revenue at risk)? |
| Patterns traced | Does every identified pattern cite specific data points from the analysis sections? |
| Priorities actionable | Are next-quarter priorities specific enough to evaluate in the next QBR (not "do more BD")? |
| Priorities capped | Are priorities limited to 3-5 with specific success criteria? |
| Decision audit present | Is the decision audit included even if no major decisions were made? |
| Prior quarter compared | Are comparisons to prior quarter included where data was available? |
Identify the weakest section. Rewrite it. Verify the rewrite is present and improved before presenting.
Rules
From the SOP:
- Run the review three weeks before quarter close. If you wait until the new quarter, you've lost the window to act on what the review surfaces.
- Set next-quarter priorities as constraint fixes with measurable outcomes, not aspirations. "Grow revenue" is not a priority. "Replace the client concentration risk by adding two retainer engagements" is.
- Never skip the client profitability analysis. Revenue by client is vanity. Effective hourly rate by client is truth.
From the QBR Prep skill:
- Use actual revenue collected, not invoiced. Invoiced revenue that hasn't been paid is a receivable, not income.
- Always calculate the effective hourly rate — total revenue divided by total hours worked (all hours, not just billable). This tells you whether you're running a profitable practice or a busy one.
- Flag client concentration above 30%. Losing a client that represents a third of your revenue is not a setback — it's a crisis.
- Limit next-quarter priorities to 3-5. Each must have a specific success criterion.
- Include the decision audit even if "no major decisions were made." That itself is a finding.
- Compare to prior quarter when data is available. Single-quarter numbers are snapshots. Trends are signals.
- Never skip the pattern identification section. The individual metrics are inputs; the patterns are the insight.
From the Client Profitability Analyzer skill:
- Always calculate from actual hours, not contracted or SOW hours. The gap between the two is where profitability disappears.
- Include all time: meetings, email, prep, admin, travel, and revision cycles. If you spent time thinking about a client, that's time.
- Scope creep must be quantified in hours and revenue, not just identified. "Client X has scope creep" is an observation. "Client X's scope creep consumes Y hours per month at \$Z revenue equivalent" is actionable.
- Never recommend disengagement as a first step. Sequence is: scope conversation, then fee adjustment, then disengagement.
- Include opportunity cost in the analysis. Underperforming clients don't just pay less per hour — they prevent you from spending those hours on higher-value work.
- Round effective hourly rates to the nearest whole number. Precision to the cent implies accuracy that estimates don't support.
Output format:
- This is a quarterly operating document. Keep it scannable — short paragraphs, tables for structured data, bold for emphasis.
- Escape dollar signs as \$ for Notion compatibility.
- Present as a single unified document, not separate skill outputs.
- If data is incomplete, work with what's available and note assumptions. Never fabricate data.
Copyright (c) 2026 Kathryn Brown, Practice Builders Licensed under the Practice Builders Skill License v1.0 See https://practicebuilders.ai/license for terms.
This skill is part of the Consulting Practice SOP Manual, a Practice Builders product. Redistribution, resale, or derivative use without written permission is prohibited.