Project Profitability Review Cadence for Agency Owners
An operational checklist for running a monthly project profitability review. Which projects to flag, which numbers to defend, and how to keep the meeting under an hour.

It is the eighth of the month. The agency owner of a 25-person studio has scheduled the profitability review for 14:00. The finance lead opens a spreadsheet that was last updated on the fourth. The delivery lead arrives with a different spreadsheet that pulls logged hours from ClickUp through last Friday. The account director joins ten minutes late with a client status note nobody else has seen. By 15:30, the meeting has produced two follow-ups and one number nobody is sure about. By 17:00, the owner is asking for "real numbers" later in the week. This article is for the agency owner and finance lead who want a profitability review that ends at the scheduled time, with decisions made, and without anyone asking for a follow-up version of the numbers.
A profitability review is the monthly habit that connects revenue, cost, margin, retainer burn, logged hours, and on-track status into one conversation. The point is not the dashboard. The point is the decisions: which projects need scope or staffing changes, which retainers need a commercial conversation, and which owners need coaching. This checklist is the version a finance lead can keep open during the meeting. It assumes the agency runs the review monthly, with a smaller weekly pulse in between.

Before the meeting: a 30 minute prep checklist
The reason most reviews run long is that the data was not ready when the meeting started. Thirty minutes of prep, done by the finance lead the day before, removes the four most common time sinks.
| # | Check | Owner |
|---|---|---|
| 1 | Logged hours hygiene pass complete for the prior month | Delivery lead |
| 2 | Recognition rule for revenue stated on the report page | Finance lead |
| 3 | Cost definition stated (loaded, unloaded, with or without overhead) | Finance lead |
| 4 | Retainer monthly allocation entered for every active retainer | Account director |
| 5 | On-track / at-risk / off-track flag set for each active project | Delivery lead |
| 6 | Starting cash date refreshed | Finance lead |
| 7 | Two or three decisions named on the agenda | Agency owner |
Item 1 is non-negotiable. A profitability review on top of dirty logged hours will produce numbers the owner cannot trust. For the weekly hygiene routine that supports the monthly review, see logged hours hygiene for agency teams.
The 60 minute meeting structure
A useful structure for a 25-person agency is 60 minutes, split four ways. Larger agencies can extend each block proportionally, but the shape stays the same.
- Portfolio at a glance (10 minutes). Total revenue recognised, total cost, blended margin, runway, and the number of projects in each on-track flag. No project-level discussion yet.
- At-risk and off-track projects (20 minutes). Walk each flagged project. Name the cause, the next decision, and the owner. Do not spend time on healthy projects.
- Retainer review (15 minutes). Compare logged hours against monthly allocation for each retainer. Flag retainers that are over allocation two or three months in a row for a commercial conversation.
- Decisions and follow-ups (15 minutes). Confirm the two or three decisions on the agenda, name the owner and the deadline for each, and write the assumption changes down on the same page as the numbers.
That structure works because the bulk of the time goes to the projects and retainers that actually need attention. Healthy work does not need 10 minutes of discussion. It needs a tick on the list.
What "on-track" needs to mean before the meeting starts
Half of the meetings that run long do so because "on-track" was not defined. A project can be on track for revenue and off track for margin. It can be on track for hours and off track for client satisfaction. The review needs a shared definition before the portfolio view goes up.
A practical three-flag system:
- On-track. Margin is within 5 percentage points of plan, logged hours are within 10 percent of plan, and the client status is stable. Move on.
- At-risk. One of the three has drifted. Either margin is 5 to 10 points below plan, hours are 10 to 25 percent over, or the account director has flagged a relationship signal. The project needs a 5 minute review.
- Off-track. Two of the three have drifted, or one has drifted badly. The project needs a decision in the meeting: scope reduction, staffing change, milestone reset, or a commercial conversation with the client.
The flag is a conversation, not a verdict
Off-track does not mean the project is failing. It means the project needs a decision now, while there is still time to change the trajectory. Treating the flag as a verdict makes delivery leads hide problems. Treating it as an invitation to decide surfaces them earlier.
The retainer block deserves its own checklist
Retainers fail differently from fixed projects. They rarely blow up in one month. They drift over three or four. The review block should look for the drift, not the one-off spike.
Walk each active retainer through six questions:
- What was the monthly allocation, in hours and revenue?
- What was logged this month, by role?
- Is this the first month over allocation, or the third in a row?
- Are senior roles absorbing work that should be at a lower cost rate?
- Has the client requested anything outside the agreement in the last 30 days?
- What is the next contractual checkpoint, and when?
A retainer that is over allocation in one month is usually noise. A retainer that is over allocation for three months in a row is a commercial conversation that has been delayed. The conversation can be a scope reduction, a price increase, a staffing change, or an intentional decision to accept lower margin because the account has strategic value. All of those are valid. None of them happen by accident.
Connect cost to logged hours, with assumptions named
Project cost in the review usually depends on a loaded labor rate applied to logged hours. The math is small. The assumptions matter more than the formula.
Three labels keep the cost column defensible:
- Loaded versus unloaded. A loaded rate includes employer contributions, benefits, and an overhead allowance. An unloaded rate is salary divided by working hours. Loaded rates give a more honest project cost; unloaded rates make headline margins look better. Pick one and apply it consistently across every project.
- Logged hours coverage. Note the percentage of expected hours that were actually logged. A project where 70 percent of expected hours got logged has a margin that is partly fictional. Flag it in the review.
- Internal time treatment. Decide whether internal meetings, brand work, and partner review hours count against the project. Apply the rule consistently.
For the budget side of the same review and the rules for connecting ClickUp time to cost rollups, see project budget tracking for agencies.
A weekly pulse keeps the monthly review short
Agencies that try to run the full profitability review with one month of stale data spend the meeting investigating. Agencies that run a 15 minute weekly pulse spend the meeting deciding.
The weekly pulse is small:
- The delivery lead clears the logged-hours hygiene list. Mapping, unmapped users, and no-log periods get fixed.
- The account director updates the at-risk flag for any project that drifted during the week.
- The finance lead spot-checks the three projects with the largest revenue. A project with $40k of recognised revenue and a wrong cost column is a much bigger problem than a project with $4k.
Three weeks of this pulse usually changes the shape of the monthly review. The data is fresher. Fewer projects need a deep dive. The retainer block runs in 10 minutes instead of 25. The meeting ends on time.
Make the review permission-aware
Profitability data is sensitive. Most agencies do not want every project manager to see individual salaries, and many do not want delivery leads to see person-level cost figures. The review still has to work.
BreezeLeave separates aggregate cost visibility from per-person cost visibility. The agency owner, finance lead, and HR can see loaded costs. Delivery leads can see project margin signals and the operating context without individual salaries. The exact gating is configurable. For the gating rules and the role-specific impact, see labor cost permissions guide for agency operations.
Treat any cost screenshot the same way. If a screenshot would name a person's loaded cost, it does not belong in a broad channel. The review notes that go out to the wider team should describe decisions and trends, not individual cost rows.
After the meeting: write the assumption log
The single habit that separates agencies whose reviews compound from agencies whose reviews repeat the same arguments every month is the assumption log. Spend the last 5 minutes of every review writing down:
- The recognition rule used this month, and any change since last month.
- The cost definition used this month, and any change since last month.
- The on-track / at-risk / off-track thresholds in use.
- The retainers flagged for commercial conversations, and the owner of each.
- The decisions made in the meeting, with owner and deadline.
Next month's review opens with that log. It is the difference between starting from a shared baseline and starting from a re-argued one.
Run scenarios alongside profitability, not instead of it
A profitability review answers "what is happening." A scenario review answers "what could happen." Both belong in a monthly cycle, and they reinforce each other. The profitability review tells the scenario review whether the baseline is holding. The scenario review tells the profitability review which decisions are coming up. For the scenario side, see agency budget scenario review guide.
Ready to put project revenue, cost, margin, retainers, and on-track status into one defensible monthly review? Review project budget, runway, and staffing scenarios in BreezeLeave, and pair the meeting with the ClickUp time tracking page for the logged-hours hygiene that keeps the cost column trustworthy.
