name: monthly-financial-review-runner description: > Runs the full monthly financial review — revenue confirmation, per-client profitability analysis, variance against annual target milestones, and documented action items. Last business day of each month. 60 minutes. metadata: author: "Kathryn Brown, Practice Builders" version: "1.0.0" date: "2026-04-28" sop: "Monthly Financial Review" category: "Operations & Admin" frequency: "Monthly" estimated-time: "60 min" trigger: "Last business day of each month"
Monthly Financial Review — Runner
You are executing the Monthly Financial Review SOP for an independent consultant. Revenue predictability is a systems problem. Without a monthly financial review, you find out you're off-track at the quarter — when there's no time to recover. This runner keeps you inside the numbers rather than surprised by them: you know your realization rate, your trajectory against annual targets, and whether this month's client mix is serving you or just keeping you busy.
Do not skip steps. Do not ask questions across multiple turns — collect everything upfront.
What you'll have when this is done: This month's revenue total confirmed, a realization rate for each active client, a variance figure against your annual target milestone, and a documented list of action items — scope conversations, pipeline adjustments, or billing corrections — to carry into next month.
Step 1: Collect Your Inputs
Ask the user for the following (all at once, in a single prompt):
Revenue Data:
- Total revenue collected this month (actual cash received, not just invoiced)
- Any outstanding invoices — amounts and due dates
- Revenue target for this month (from your annual milestone breakdown, if available)
Annual Target Context:
- Annual revenue target
- Monthly milestone breakdown (output from the Revenue Goal Reverse Engineer skill, if available)
- Year-to-date revenue collected through prior month
Per-Client Data — for each active engagement this month:
- Client name
- Monthly fee or project revenue this month
- Contracted hours (what the SOW states or implies)
- Actual hours this month (total time including meetings, email, prep, admin, revision cycles — be honest)
- Any known scope creep or out-of-scope work performed
- Engagement type (retainer, project, advisory)
Practice Parameters:
- Your target hourly rate (the rate you consider profitable)
- Target recurring vs. project revenue mix (if you have one)
Prior Month:
- Prior month's total revenue (for trend comparison)
- Prior month's financial review notes or action items (if available)
If the user doesn't have exact numbers, accept estimates and note where precision would improve the analysis.
Step 2: Revenue Confirmation
Using the revenue data from Step 1, confirm the month's financial position.
| Item | Amount |
|---|---|
| Total revenue collected | [\$X] |
| Outstanding invoices | [\$X] (due dates noted) |
| Revenue target (monthly milestone) | [\$X] |
| Variance to target | [+/- \$X] ([+/-%]) |
Flag any outstanding invoices with due dates. If payments are overdue, note them as action items.
Write one sentence: ahead, on track, or behind — and by how much.
Step 3: Client Profitability Analysis
Using the per-client data from Step 1, calculate profitability for every active engagement.
3A. Per-Client Profitability Table
For each client, calculate:
- Monthly fee — as provided
- Contracted hours — what the SOW states or implies
- Actual hours — total time spent (meetings, email, prep, admin, revision cycles)
- Effective hourly rate — monthly fee / actual hours. 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] |
3B. 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
| Activity | Frequency | Hours/Month | Root Cause | Difficulty |
|---|---|---|---|---|
| [Activity] | [Weekly/Ad hoc] | [X] | [Cause] | [Easy/Moderate/Hard] |
| Total creep | [X] hrs | Revenue equivalent: [\$X] |
3C. 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
3D. 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 4: Target Variance Analysis
Compare this month's performance against the annual plan.
4A. Monthly Variance
| Metric | Actual | Target | Variance |
|---|---|---|---|
| Monthly revenue | [\$X] | [\$X] | [+/- \$X] ([%]) |
4B. Year-to-Date Trajectory
| Metric | Value |
|---|---|
| YTD revenue collected | [\$X] |
| YTD target (cumulative milestones) | [\$X] |
| YTD variance | [+/- \$X] ([%]) |
| Annual target | [\$X] |
| Remaining to hit annual target | [\$X] |
| Months remaining | [X] |
| Required monthly average (remaining months) | [\$X] |
If behind target, calculate what the remaining months need to average to close the gap. If the required monthly average exceeds the highest month this year, flag it as a trajectory risk.
If the user provided Revenue Goal Reverse Engineer output, compare actual activity (client wins, pipeline conversations) against the planned weekly cadence. Note where activity is ahead or behind plan.
4C. Month-over-Month Trend
| Metric | This Month | Last Month | Change |
|---|---|---|---|
| Revenue collected | [\$X] | [\$X] | [+/-%] |
| Weighted avg effective rate | [\$X] | [\$X] | [+/-%] |
Write one paragraph interpreting the trajectory: on track, accelerating, decelerating, or off-track — and what's driving it.
Step 5: Revenue Mix Review
Calculate the split between recurring revenue and project revenue:
| Type | Revenue | % of Total |
|---|---|---|
| Recurring (retainers) | [\$X] | [X]% |
| Project | [\$X] | [X]% |
Compare against the user's target mix (if provided). If the recurring portion is below target, flag it as a pipeline priority for the coming month.
Write one sentence on whether the mix is moving toward or away from the target.
Step 6: Assemble the Monthly Financial Review
Combine all outputs into a single document:
# Monthly Financial Review: [Month Year]
**Period:** [Month] | **Prepared:** [Date] | **Target hourly rate:** [\$X]
## Revenue Summary
| Item | Amount |
|------|--------|
| Revenue collected | [\$X] |
| Outstanding invoices | [\$X] |
| Monthly target | [\$X] |
| Variance to target | [+/- \$X] ([%]) |
**Status:** [Ahead / On track / Behind] — [one sentence explanation]
## 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]
| Activity | Frequency | Hours/Month | Root Cause | Difficulty |
|----------|-----------|-------------|------------|------------|
| [Activity] | [Weekly/Ad hoc] | [X] | [Cause] | [Easy/Moderate/Hard] |
| **Total creep** | | **[X] hrs** | **Revenue equivalent: [\$X]** | |
### Recommendations
**1. [Client Name] — [Action type]**
- **Signal:** [Specific data point from analysis]
- **Do This:** [Specific action with exact language where applicable]
- **Timeline:** [When to act]
## Year-to-Date Trajectory
| Metric | Value |
|--------|-------|
| YTD revenue collected | [\$X] |
| YTD target | [\$X] |
| YTD variance | [+/- \$X] ([%]) |
| Remaining to hit annual target | [\$X] |
| Required monthly average (remaining) | [\$X] |
**Trajectory:** [On track / Accelerating / Decelerating / Off-track] — [one paragraph interpretation]
## Month-over-Month Trend
| Metric | This Month | Last Month | Change |
|--------|-----------|-----------|--------|
| Revenue collected | [\$X] | [\$X] | [+/-%] |
| Weighted avg effective rate | [\$X] | [\$X] | [+/-%] |
## Revenue Mix
| Type | Revenue | % of Total | Target Mix |
|------|---------|-----------|-----------|
| Recurring | [\$X] | [X]% | [X]% |
| Project | [\$X] | [X]% | [X]% |
**Mix assessment:** [One sentence on direction relative to target]
## Action Items
| # | Action | Category | Client/Area | Due |
|---|--------|----------|------------|-----|
| 1 | [Specific action] | [Scope / Billing / Pipeline / Other] | [Client or area] | [Date or "Before next review"] |
## Flags for Next Month
- [Any client whose realization rate dropped significantly]
- [Any pipeline priorities from revenue mix review]
- [Any billing corrections needed]
SOPs to Trigger
Based on the review, check whether any of the following SOPs should be triggered:
- [ ] Quarterly Business Review Prep — if this is the third month of the quarter and the QBR hasn't been scheduled
- [ ] Capacity Planning Update — if utilization data reveals overextension or significant underutilization
- [ ] Fee Review and Adjustment — if multiple clients are underperforming and the pattern is structural underpricing rather than scope creep
- [ ] Late Payment Collection — if outstanding invoices are overdue
Quality Check (Internal — never shown to the user)
Before presenting the output, verify:
| Check | Requirement |
|---|---|
| Revenue confirmed | Is the month's total revenue populated with actual data, not estimates where actuals were available? |
| Invoices flagged | Are outstanding invoices listed with amounts and due dates? |
| Effective rate calculated | Is the effective hourly rate calculated from actual hours, not SOW hours? |
| Scope creep quantified | Is every identified scope creep activity converted to hours and a revenue equivalent? |
| Ranking complete | Are all clients ranked by effective hourly rate with a health category assigned? |
| Recommendations specific | Does every recommendation include exact conversation language or a specific action, not just "address scope creep"? |
| Portfolio view | If multiple clients were analyzed, is there a portfolio-level summary (weighted avg rate, revenue at risk)? |
| Target variance calculated | Is the variance against the monthly milestone shown in both dollars and percentage? |
| YTD trajectory included | Is the year-to-date position calculated with the required monthly average for remaining months? |
| Revenue mix assessed | Is the recurring vs. project split compared against the target mix? |
| Action items documented | Is there a specific, dated action list — not vague observations? |
| Prior month compared | Are month-over-month comparisons included where prior data was available? |
Identify the weakest section. Rewrite it. Verify the rewrite is present and improved before presenting.
Rules
From the SOP:
- Run this review on the last business day of every month. If you wait until next month, you've lost the window to act on what the review surfaces.
- Confirm all issued invoices are recorded and any outstanding payments are flagged with due dates before starting the analysis.
- Compare revenue against the monthly milestone from the Revenue Goal Reverse Engineer output. Note whether you're ahead, on track, or behind — and by how much.
- Flag any client whose realization rate dropped significantly month-over-month. Determine the cause: scope creep, underpricing, or a one-time event. Scope creep gets addressed before next month's SOW cycle.
- Review the recurring vs. project revenue split. If recurring is below target, note it as a pipeline priority for the coming month.
- Record the month's summary in your financial log. This becomes the comparison point for next month's review and feeds your Quarterly Business Review Prep.
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.
- If only one client is analyzed, still benchmark against the target rate and provide context on where this engagement fits in a healthy practice portfolio.
From the Revenue Goal Reverse Engineer skill:
- When comparing actuals to target milestones, work backward from the annual target — not forward from current pace. The target drives the math.
- When the trajectory is off-track, quantify the gap in required monthly average for remaining months. Show whether the recovery math is feasible.
- Never assume a close rate above 40% when projecting forward pipeline needs unless the user provides data supporting it.
Output format:
- This is a monthly 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.