Hi reader,
Constellation Software (my largest position) reported a solid quarter on Friday. There are many puts and takes to the company’s earnings, so I hope to clarify them in this article. It’s worth noting that Constellation’s stock is up 241% over the last 5 years, for a 28% CAGR:
Some will say this kind of performance is unsustainable over the long term. While I do agree with the unsustainability of Constellation compounding at a 30% CAGR going forward, it’s worth considering that most of this return has come from outstanding fundamental performance. FCF per share over this period has grown at a 23% CAGR, with the remaining CAGR coming from multiple expansion (8%):
Constellation has undoubtedly experienced some kind of valuation tailwind, but most of the stock's performance has come from what matters most (and is more predictable) over the long term: fundamentals. In short, Constellation’s shareholders did not need the valuation tailwind to perform outstandingly well over the past 5 years.
Without further ado, let’s get on with the quarter.
The numbers
Constellation reported another good quarter, growing its top line by 20%. Net income decreased this quarter, but there are many puts and takes in that number that I’ll discuss later:
The company enjoyed operating margin expansion during the quarter and the first 9 months of the year:
This kind of margin expansion might sound unimpressive for any other company, but I think it’s a highlight for Constellation. The reason is that the company’s growth continues to be driven by acquisitions, which bring considerable inefficiencies. Inefficiencies come from mainly two sources:
Constellation tends to acquire companies that are going through certain headwinds that it can get on the cheap
Synergies are not realized immediately
Everything that happens since Constellation acquires a company until its operations are made efficient creates a margin headwind (Altera is a good case study). This has two implications. First, as long as Constellation continues to deploy significant amounts of capital into acquisitions, we will likely never see its true earnings power; should Constellation stop acquiring businesses today, its margins would probably creep up, but obviously, growth would come down substantially. Secondly, it makes margin expansion under such circumstances more so impressive.
Revenue growth has also been impressive. Constellation has grown revenue above 20% for the past 15 quarters. This is no easy feat at the company’s run rate (this quarter was slightly below 20%, but you get me).
I’ll first look into revenue.
Digging deeper into revenue
As you might already know, Constellation has two sources of revenue growth: acquisitions and organic growth. Acquisitions were responsible for the bulk of this quarter’s and the 9-month’s growth, as has been the case for a while. Organic growth (fx adjusted) decelerated to 1%:
This deceleration has been the norm since Constellation started to face tougher comps. As discussed in past articles, the company probably took advantage of inflation to raise prices in 2023. With CPI subsiding, it’s arguably much tougher to do that now, so some kind of deceleration in the growth rate should not be seen as unusual. This said, the resilience of organic growth in maintenance and recurring revenue continues to surprise. This revenue source grew 6% organically and has been above 5% for 14 quarters in a row:
Don’t forget that other revenue sources tend to be much more volatile, making analyzing a trend in total organic growth quite challenging. Maintenance and recurring revenue is Constellation’s most relevant revenue source (making up 72% of total revenue for the first 9 months) and keeps growing faster than total organic revenue. This means that the company's organic growth should eventually converge to the growth rate found in maintenance and recurring, especially if capital deployment starts to come down sometime in the future.
As usual, management shared how Topicus, Lumine, and Altera impacted its organic growth profile. No news on this front this quarter. Lumine and Topicus did what they were expected to do. Lumine detracted from organic growth, whereas Topicus added to organic growth. To be honest, I find it pretty impressive that Constellation is not far off Topicus’ organic growth profile:
Altera is the vivid example of what I discussed earlier regarding margins. When Constellation acquired Altera, the company had a 16% operating margin. It was also a pretty significant acquisition, with $220 million in quarterly revenue at the time of acquisition. Since its acquisition, Constellation has expanded its operating margin to 19%. The impact on cash flows has been even more noticeable, which is what Constellation cares about. Since Constellation acquired it, Altera has generated $311 million and $211 million in Operating Cash Flow and FCFA2S, respectively:
Constellation has done a good job of stabilizing its growth and improving its profitability, but it was undoubtedly not a good quarter for Altera. Altera posted the lowest quarterly revenue since being acquired by Constellation. We must not rush to conclusions based on one quarter, but it’s something to monitor. Note that even if the company eventually goes into decline, it doesn’t matter much so long as Constellation has made a good return on it when that happens.
Maintenance and recurring revenue growth moderated substantially at Altera compared to last quarter (+7%) but remained in positive territory:
Looking at the expense side - The puts and takes
As discussed at the beginning of the article, Constellation’s operating performance was a highlight but the company’s net income decreased during the quarter. It’s up 5% during the first 9 months, though. As I have repeatedly stated, this metric is not entirely relevant for Constellation (cash flows are) due to all the noise it contains.
There were three puts and takes for Constellation’s profitability this quarter:
Foreign exchange: Constellation went from a foreign exchange gain of $23 million in the comparable quarter to a $30 million loss this quarter. That’s a $53 million differential, which we shouldn’t over-obsess with as it will matter little in the long term.
Bargain purchase gain: the company enjoyed a $50 million bargain purchase gain in the comparable quarter, which was now a $1 million loss. That’s a $51 million differential.
Finance costs: these have gone up by $22 million, but considering Constellation’s business I would sort of consider this an operating expense of some sort.
These three combined brought $126 million in increased expenses compared to last quarter. Should’ve the foreign exchange gain and the bargain purchase gain remained constant, EBT would’ve been $104 million higher, or growing 31% from the comparable quarter’s level. This exercise is purely illustrative as these are real expenses for Constellation and, therefore, should not be ignored. They are indeed non-recurring, though.
The positive side came from the redeemable preferred securities expense, which was absent this quarter but was $37 million in the comparable quarter. This expense is related to the Lumine spinoff and included primarily in non-controlling interests, so not really relevant for net income attributable to shareholders of CSI. Net income is always volatile for Constellation and has many puts and takes, so it’s better to focus on cash flows.
Constellation’s cash flows
Cash flow growth was muted in Q3, but it was in line with revenue growth during the first 9 months of the year:
Cash flow can be volatile from quarter to quarter, but over the long term, it should move in the same direction as operating profits (up and to the right, hopefully). Over the last 5 years, Constellation has grown its Operating Cash flow (21.5% CAGR) at a similar pace to its Operating Income (20.3% CAGR):
This is what it should look like, barring that there might be some volatility from quarter to quarter or inside a given year.
Acquisitions - An okay quarter and more to come
Constellation deployed $267 million into acquisitions in Q3 (including contingent considerations). This is significantly lower than last quarter (when the company deployed $624 million), bringing the YTD figure to $1.4 billion. Adding the company’s open commitments as of September (which might or might not result in capital deployed in Q4), the YTD figure goes up to $1.8 billion. This is an okay figure but much lower than last year’s, which is fair to say seemed like an outlier driven by Altera (+$700 million):
Capital deployment has been more muted this year than last year, but it’s still at adequate levels. We should not forget that future capital deployment will be increasingly driven by larger acquisitions, making this metric a tad more volatile. There is no news here: good capital allocators deploy capital opportunistically, creating volatility. What we should care about here is the long-term trend rather than any quarter’s capital deployment.
As capital deployment has been a bit muted, the company has been building its cash position which now stands at $2.07 billion. In addition, Constellation has $1.08 billion available from a revolving credit facility, bringing the dry powder to $3.15 billion, without considering the company could issue more debt. Constellation has historically not leveraged its balance sheet (which seems to be changing to an extent) and could fully pay off its debt with two years of cash flows.
All in all, Constellation reported a good quarter, as usual. The highlight came from profitability and even though capital deployment was muted, it showed some signs of recovery going forward.
The company has generated around $2 billion in Free Cash Flow over the last 12 months and it currently has a market cap of $66 billion (remember you have to make the conversion from CAD to USD). This means it currently trades at a FCF yield of 3%, which is not extremely demanding considering where things stand in the broad market but that’s also not on extremely cheap territory. Constellation seems reasonably valued here and I believe growth opportunities are still significant, so I will not sell any of my shares.
In the meantime, keep growing!