Renewal is an economic decision about one account, and your company-wide margin will not tell you whether this particular contract is healthy. Company-wide gross margin can look acceptable while individual recurring maintenance accounts break even or lose money. The renewal moment is where that either gets corrected or locked in for another term. So this test answers a narrower question than “is the account good.” Given what the contract actually earned recently, and what it is expected to earn if you renew it under next-period assumptions, what do you need to investigate before you decide how to renew the work?
It is a diagnostic, not a verdict. It will not tell you to renew, walk away, raise the price, or drop the account. It surfaces the economics and the questions those economics raise, so the renewal conversation starts from your own numbers rather than a gut feel about a long-standing customer. Two ideas carry the test. First, contract contribution is not net profit. Second, what a contract did last period is not automatically what it will do next period. Hold those two distinctions in view and the rest of the test follows naturally.
Define the contract you are testing
No number in this test means anything until you have pinned down exactly what “the contract” includes, because “the contract” can bundle several services, billing arrangements, and pass-throughs under one account. Before you look at revenue or cost, document the account and service period, the recurring services that are actually included, the visit count or frequency where that matters, any seasonal or ancillary services that belong inside the contract, the contract revenue or billing basis, and the exclusions or pass-through items. Then note the scope changes you already expect at renewal, because those change the forward view later.
A major scope error in this test is mixing separately sold work into the maintenance economics. If snow, enhancement installs, irrigation repairs, tree work, or seasonal color are billed as their own line items or their own agreements, they are not part of this contract’s economics unless you deliberately decide to include them and can attribute their costs cleanly. Pulling that revenue in without its true cost makes a maintenance contract look stronger than it is. Decide what is in, and hold that boundary for both the historical and the forward view.
Two economic views, and why they stay separate
This test deliberately runs two separate economic views of the same account.
The historical, or current-period, view asks what actually happened on the contract during a completed or substantially completed period. It is a record of that period, using known company data and clearly labeled estimates where a historical input is not yet known.
The forward, or renewal-period, view asks what the economics look like if you renew under the expected next-period cost, scope, production, and price assumptions. It is a plan, built from what you expect to be true.
The two are not interchangeable, and the failure to watch for is treating a good history as if it were the forecast. A contract that was profitable last year can turn unattractive next year if labor cost rises, scope or visit frequency expands, travel gets worse, or production slows. A contract that looked weak last year can improve if you can point to a specific operational problem that has been fixed. The reason for holding both views side by side is that the renewal decision depends on the forward view, while the historical view tells you how much to trust it and where to look.
Historical contract economics
Start with the revenue that genuinely belongs to the defined contract scope, and keep the revenue types distinct rather than adding them into one figure by reflex. Contracted recurring revenue is what the agreement commits to. Actual recognized or billed revenue for the period is what was really invoiced. Approved change-order or extra-work revenue is additional scope the customer authorized. Pass-through revenue, where it applies, is money that offsets a pass-through cost. Unapproved extra work needs particular care. If crews performed work that was never approved or billed, that is not revenue, even though it consumed labor. It shows up as cost without a matching dollar, which is a finding, not a revenue line. For the historical view, use the revenue attributable to the contract as you defined it.
Against that revenue, put the costs that are directly traceable to the contract. These may include productive field labor cost (with payroll burden already carried inside your approved labor-cost basis rather than added again as a separate line), materials, subcontractors, directly traceable equipment use, contract-specific disposal or hauling, direct travel or mobilization where it can reasonably be attributed, and any other cost specific to the contract. Use your company’s own definitions. If you have already worked through what a productive field hour costs and how your jobs are costed, this test consumes those definitions rather than rebuilding them. Do not reach for generic labor-burden percentages, equipment rates, or material-percentage rules of thumb to fill a gap. A missing input is a missing input, and the test treats it that way rather than papering over it with an industry average.
The primary relationship is deliberately simple:
**Contract Contribution = Contract Revenue − Directly Traceable Contract Costs**
When revenue is greater than zero, you can also read the rate:
**Contract Contribution Rate = Contract Contribution ÷ Contract Revenue**
If contract revenue is zero, the contribution dollars can still be calculated from valid costs, but the rate is reported as “n/a (no revenue)” rather than computed, because dividing by zero produces a meaningless number. Contribution is not net profit. It is what the contract returns after its own directly traceable costs, before any share of business-wide overhead and before any required profit. Calling it net profit would collapse contract contribution and business-wide overhead into the same concept, so the language stays precise throughout.
Normalizing the historical period, when it applies
A renewal decision can be distorted if the historical period you are reading was not representative. A single storm cleanup, an unusual bout of rework, a stretch where access was blocked, a one-time material event, or the startup inefficiency of a first year on a property can all push a period away from the account’s normal economics. Normalization lets you set those items aside to see the underlying result, but it has to be done visibly, and it must never overwrite what actually happened.
If you choose to normalize, each adjustment needs an explicit amount, a direction, and a written explanation of what it represents. Use a clear sign convention: a positive adjustment increases normalized contribution, and a negative adjustment decreases it. Then:
**Normalized Contribution = Reported Historical Contribution + Normalization Adjustments**
Keep the reported historical result and the normalized historical result as two separate lines. The reported figure is still the truth of what the account earned. The normalized figure is your best read of its underlying economics. When the two differ, that gap is itself a finding, because it tells you the recent result was driven partly by something that is not expected to recur.
Reading the symptoms without jumping to a cause
When a contribution result looks weak, the temptation is to name the cause immediately. The arithmetic alone cannot do that. What the numbers can do is narrow the search. A weak result traces to one or more of a short list of possibilities: a revenue problem, a scope problem, a labor-hours or productivity problem, a labor-rate or labor-cost problem, a material-cost problem, a subcontractor problem, an equipment or direct-cost problem, a travel or mobilization problem, an unbilled-extra-work or scope-leakage problem, or a data-quality problem. Use the test to let the figures surface the symptom, then have the person who knows the account select or note the likely cause.
Travel and route economics deserve a specific caution. Poor route fit can genuinely erode a recurring account, so if you can reasonably measure a contract-level travel or mobilization cost or time burden, include it. If you cannot measure it, note it qualitatively rather than inventing a figure. What this test does not do is rebuild route density, sequencing, or geographic optimization. If travel and route structure look like the real driver, that is a signal to take the account into a dedicated route-density analysis, not to solve it here.
Forward renewal-period economics
The forward view is the view used for renewal-period readiness, and it is built from your assumptions about the next period rather than from last period’s results. Enter the proposed renewal revenue, the expected service frequency or scope, the expected productive labor hours, and the expected costs across labor, materials, subcontractors, direct equipment, and travel or mobilization, along with any known scope additions or deletions. Where you have a direct expected next-period value, use it. History is a reasonable starting point for an estimate, but the forward model should show the assumptions you are actually using, not a mechanical percentage applied to last year.
The forward view produces the same structure as the historical view: expected contribution, and expected contribution rate when proposed revenue is greater than zero. The comparison that matters is the change. Show expected forward contribution against reported historical contribution, and against normalized historical contribution when you normalized. Express contribution-rate changes in percentage points rather than as a relative percentage change, because a move from a 10 percent rate to a 15 percent rate is a 5 percentage-point improvement, and describing it as a 50 percent increase invites confusion. Reading the two views together tells you whether the next term is expected to improve, hold, or deteriorate under your own assumptions.
An optional company target, and the pricing boundary
If you want to test the forward economics against a company objective, you can enter one: either a target contract contribution in dollars or a target contribution rate. Enter one, not both, because dollar and rate targets are different mathematics, and letting them compete silently produces an ambiguous result. With a target entered, the test can show expected contribution against the target and the gap between them. Without a target, the diagnostic still works. The target is optional and is never prefilled.
This is also where the test stops, on purpose. It can show you that a proposed renewal amount produces a given expected contribution, a given rate, and a given gap to your target. It does not calculate a required selling price, a recommended increase, a markup, or any judgment about how much a customer would tolerate. Required profit is an objective you set, not a cost you incur, and it is never treated as a cost layer here. If the forward view and the target gap tell you the account needs to be repriced, that is the moment to move into a proper price-change decision, which weighs cost, productivity, and customer-loss tolerance. This test defines the problem. It does not set the new price.
Overhead as a separate, optional view
Contract contribution is measured before any share of business-wide overhead, and that is intentional. Overhead recovery has its own methodology, and allocating an arbitrary slice of company overhead to one account and calling the result the account’s profit can produce a misleading account-level conclusion. If your company has an approved, company-specific overhead-recovery amount for the contract period, you can add a clearly labeled secondary view:
**Contribution After Company-Approved Overhead Recovery = Contract Contribution − Overhead Recovery Amount**
Read that line as what remains after the contract carries its assigned share of overhead, not as “true contract profit.” Do not derive the overhead amount from a generic percentage, and do not let the absence of an overhead figure suppress the primary contribution result. The secondary view is optional. The primary contribution stands on its own.
Strategic and capacity context
Not every renewal decision reduces to a contribution percentage, and the test does not pretend otherwise. An account can fill otherwise idle capacity, anchor a dense route, carry cross-sell value, or provide the predictable recurring revenue that helps you hold a crew together through the season. It can also carry concentration risk, create scheduling difficulty, sit inside an unusually restrictive service window, occupy an operationally complex property, or generate a disproportionate administrative burden. These factors are real, and they belong in the decision.
They belong there as judgment, not as a score. Resist the urge to turn them into a weighted rating that produces a single number, because that hides the reasoning rather than sharpening it. A weak contribution result can still warrant keeping an account, but only for a reason you can state, and either way it warrants investigating why the contribution is weak. A strong contribution result does not force renewal if the operational constraints have become unacceptable. Contribution tells you the economics. The strategic context tells you what else is in play.
Data quality: known, estimated, and missing
One way this test could mislead you is by making an account look complete when it is not, so it treats data quality explicitly. Every input is Known, Estimated, or Missing. Blank is not zero: a field left empty means you do not have the number, while a deliberately entered zero is a real value and is treated as one. An Estimated input requires a visible note explaining the assumption behind it, because an estimate without a stated basis is incomplete. A Missing required input suppresses only the outputs that depend on it, rather than quietly defaulting to zero and letting a total appear finished.
The historical and forward sections carry their own completeness states, and they do not have to match. Your historical view can be complete while your forward view is still incomplete, or your forward view can be provisional because it leans on estimates while your history is fully known. The optional target and overhead sections can be incomplete without touching the contribution results. There is no single confidence percentage rolled up across the account, because a percentage like that would imply a precision the data does not have.
Using the test, and what it tells you
Worked through end to end, the test gives you three things: a reported and, if you chose, normalized read of what the account actually earned; a forward read of what it is expected to earn under next-period assumptions; and a clear view of where those two diverge and why. The workbook that accompanies this Resource carries the same structure and the same discipline, and it reports a readiness state rather than a recommendation. A forward view missing required inputs is Not Ready. A complete forward view that leans on estimates is Provisional. A complete forward view built from known inputs is Ready for Management Review. Ready for Management Review means the economics are ready to be discussed, not that the answer is “renew.”
What you are left with is a short, specific list of things to investigate before the renewal conversation: the revenue that is really attributable to the account, the costs you can and cannot trace, whether last period was representative, how the next term is expected to differ, and whether travel, scope leakage, or production variance is doing more damage than the headline number suggests. If important parts of that picture still depend on estimates or on costs you cannot assign cleanly, that gap is the thing worth resolving first, before you commit to another term. That is where an outside read can help: if the numbers behind a renewal still rest on estimates or costs you cannot trace, Profit in Bloom can help map those gaps and work through the account’s economics with you before you commit. [Request a Consultation]