Walk into almost any founder-owned vertical market software business that has been operating for fifteen or twenty years and you will find the same revenue shape. There is a subscription or SaaS line that the CIM leads with, growing nicely off a small base. There is a services line that goes up and down with implementation activity. And underneath both, often accounting for the majority of gross profit, there is a maintenance and support stream attached to perpetual licenses sold years ago, renewing quietly every year at a high rate and a very high margin.
That last line is usually the asset a buyer is actually paying for. It is also the line that gets the least diligence attention, because it is old, it is unglamorous, and it does not fit the SaaS vocabulary most investment teams now default to. The result is that buyers spend hours stress-testing a cloud product that represents a fraction of the value while taking the maintenance base largely on trust.
Why maintenance deserves its own workstream
Maintenance revenue behaves differently from subscription revenue in ways that matter for underwriting. The customer already owns the license, so the annual decision is not whether to keep using the software, it is whether to keep paying for updates, support, and regulatory changes. That makes the renewal decision cheaper to walk away from than a SaaS cancellation, at least in theory, because the software keeps running either way.
In practice, most customers keep paying, and the reasons they keep paying are exactly what a buyer needs to understand. Some pay because the vertical has regulatory or compliance updates that only the vendor can deliver. Some pay because support is the only realistic way to get help with a system nobody on staff fully understands anymore. Some pay out of inertia and an invoice that nobody has questioned in a decade. Those three customers look identical in a retention report and carry very different risk profiles.
Test 1: Rebuild retention from the invoice level
Ask for maintenance billing by customer by year, not a summary retention percentage. Rebuild gross dollar retention yourself, and separate the effect of price increases from the effect of customer count. A base that shows high dollar retention because the seller has raised maintenance fees every year while logo count slowly erodes is a very different asset from one where logos are flat and pricing has barely moved.
While you are in the data, look for customers on reduced or "sustaining" maintenance tiers, customers who lapsed and were reinstated, and any accounts invoiced but not collected. Lapse-and-reinstate patterns in particular tell you something useful: customers who stopped paying and came back usually came back because something forced them to, which is a stronger retention signal than any customer survey.
Test 2: Find out what the customer actually gets for the fee
This sounds obvious and is rarely done rigorously. Map what a maintenance customer received over the last three years: how many releases, how many of those contained regulatory or compliance changes, what support ticket volume per customer looks like, and how much engineering time went into the legacy product versus the new one.
If the answer is that the legacy product has received little meaningful development and support volume is low, the maintenance fee is being paid for something close to insurance. That can be a perfectly good business, but it is one where a well-timed competitor offer, a budget review at a customer, or an aggressive price increase can surface the question "what are we actually paying for?" A base where customers receive mandatory regulatory updates they cannot get anywhere else is far more defensible.
Test 3: Understand the pricing headroom, and how it was used
Maintenance fees are typically set as a percentage of the original license price. In many older businesses that percentage was set long ago and has drifted, so customers who bought at different times pay very different effective rates for the same service. That creates both an opportunity and a risk.
The opportunity is obvious: a buyer can often normalize fees upward over time. The risk is that the seller, knowing a sale is coming, may have already pulled that lever in the last one or two years to lift revenue and EBITDA. Plot maintenance fee increases by year alongside churn by year. If the increases accelerated recently and churn has not yet moved, you may be looking at churn that is scheduled rather than avoided, because customers often absorb one increase and act on the second.
Test 4: Size the migration question honestly
Most of these businesses have a cloud version in development or early rollout, and the CIM will present migration of the maintenance base to subscription as upside. Sometimes it is. But a migration is also the single moment when a captive customer is forced to make a new purchasing decision, and a new purchasing decision is when competitors get invited to pitch.
Ask for data on customers who have already been offered the cloud product: how many were offered, how many converted, at what uplift, and how many left the vendor entirely during the process. A company that has converted a handful of friendly accounts at a healthy uplift has proven very little. A company that has run a structured migration program across a meaningful slice of the base, with low leakage, has proven quite a lot. If there is no data at all, the migration upside belongs in a sensitivity case, not in the base case.
Test 5: Check who is actually supporting the product
Legacy products are often kept alive by a small number of long-tenured engineers and support staff who know the codebase and the customers personally. Get the names, tenure, and compensation for everyone touching the legacy product, and find out whether any of them are also sellers or relatives of sellers. The maintenance stream is only as durable as the ability to keep delivering what customers pay for, and in a founder-owned business that ability can sit with two or three people.
What this means for valuation
None of this argues against paying for maintenance revenue. Well-supported maintenance bases in mission-critical verticals are some of the most durable cash flows in lower middle-market software, and they underpin much of the long-hold acquirer model. The point is that the multiple should reflect what diligence actually shows, rather than a blended recurring revenue figure that treats a twenty-year maintenance customer and a six-month SaaS customer as the same thing.
A practical approach is to underwrite the maintenance base, the subscription base, and the services line as three separate streams, each with its own retention, growth, and margin assumptions, and then check whether the headline price still works. It often does, but for reasons that are different from the ones in the CIM.
