TSX:CSU Constellation Software Inc.

ISIN: CA21037X1006
Information TechnologyVertical-Market Software
TSX · Toronto, Canada · Vertical-Market Software (serial acquirer) · Mature compounder Analysis Status: On-Going
All share prices in Canadian dollars (C$). Constellation reports its financials in US dollars, so every multiple here is currency-matched before use. The trailing P/E is 48.8× — a correctly matched C$/C$ figure: the provider’s C$63.05 trailing EPS is the USD figure already converted (the four reported quarters sum to US$45.33; ×1.3938 = C$63.18). An earlier draft of this report claimed 48.8× was a currency error and “corrected” it to 35.0×. That was wrong, it was caught by the pre-publication audit, and it mattered — see §4.
C$3,079.86
−4.35% since 4 Aug · −4.51% the day after Q2
13 Aug 2026 · Signal v6

What changed since 4 Aug 2026 (C$3,220.08)

Downgraded to HOLD on all three horizons (was BUY / BUY / BUY). Two things moved: the Q2 print on 11 August showed organic growth of just 3%, and 1% after currency; and a valuation error in our own draft was caught before publishing — correcting it fires the Valuation-Ceiling gate.

On the error, plainly: our draft claimed the provider's 48.8× P/E mixed a Canadian-dollar price with US-dollar earnings and restated it as 35.0×. The opposite was true — C$63.05 is the converted figure (US$45.33 × 1.3938 = C$63.18), so 48.8× was right and our “fix” introduced the mismatch. The independent pre-publication audit caught it. We publish it because the correction changed the verdict.

DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.

Constellation Software Inc.

Constellation Software is a Toronto-listed serial acquirer of vertical-market software — the unglamorous, mission-critical systems that run bus fleets, golf clubs, pharmacies, courts and utilities. It buys small software businesses outright, almost never sells one, and pushes capital-allocation authority down to autonomous operating groups (Volaris, Harris, Jonas, Perseus, Vela, plus the listed Topicus and Lumine). The distinctive thing is not any single product — it is the acquisition engine itself: a decentralised machine that has compounded capital at high rates for two decades by buying niche software nobody else wants at disciplined prices. Its customers rarely leave, because replacing the software usually means replacing the way the organisation works.

HorizonSignalComposite ScoreConfidenceKey Driver
Short-term (1–3 mo)HOLD4850%Expensive on the sector’s primary multiple — and the tape has not confirmed
Medium-term (6–12 mo)HOLD5255%Great business, wrong price — Valuation-Ceiling gate caps at HOLD
Long-term (3–5 yr)HOLD5858%The compounding case is intact; the entry multiple is not
Next update: 2026-08-27 — default +14d (Q2 just cleared; next impactful event is Q3 earnings ~Nov)
Table of Contents
1Five-Pillar Scorecard2Hard Gates & Do-Not-Buy Status3Pillar Detail: Business Quality4Pillar Detail: Valuation Attractiveness5Pillar Detail: Underlying Drivers6Pillar Detail: Economic Alignment7Pillar Detail: Entry/Exit Timing8Economic Event Risk9Multi-Timeframe Technical Analysis10Price Chart (6-Month Daily)11Scenario Summary12Entry / Exit Rules13Position Sizing Context14Calibration Snapshot15Data Sources & Methodology
1

Five-Pillar Scorecard

Five independent scores — each 0–100 with its own confidence. The three fundamental pillars (Quality / Valuation / Timing) set the base BUY/HOLD/SELL via the Decision Matrix; the two context pillars (Underlying Drivers, Economic Alignment) then amplify a BUY to STRONG BUY or a SELL to STRONG SELL when both corroborate.

Business Quality

80
excellent
conf 78%

Valuation Attractiveness

35
expensive
conf 72%

Entry/Exit Timing

52
neutral
conf 50%

Underlying Drivers

52
neutral
conf 60%

Economic Alignment

50
Neutral
conf 65%
2

Hard Gates & Do-Not-Buy Status

Binary safety checks — any TRIGGERED gate is a hard cap regardless of the scores above; CAUTION gates are sizing notes.
Financial Distress
No distress. Net debt US$2.93B (US$5.83B debt less US$2.89B cash) against US$2.88B TTM EBITDA — about 1.0×. Current ratio 0.90 is by design: CSU runs structural negative working capital on large deferred-revenue balances. That is a funding advantage, not a liquidity problem.
Earnings Event Risk
Cleared this run. Q2 results landed 11 Aug after the close; the next print is Q3 in ~November. The event risk that capped timing confidence in the 4 Aug report has now resolved — and it resolved against the stock (−4.51% the following session).
Valuation Ceiling
TRIGGERED — this is what caps the signal at HOLD on all three horizons. Constellation trades at 48.8× trailing earnings. The Information-Technology guardrail is 33×, and the framework is explicit that breaching it makes a name Expensive regardless of the warranted ratio and with no growth exception. Against the warranted multiple of 25.3× the ratio is 1.93× — deep in the Expensive band (≥1.40).

Why this is a cap and not a Do-Not-Buy — the full working, because it is closer than it looks. DNB Trigger 2 has two absolute arms. Arm (a) needs 2.0× warranted (50.6×) or 1.5× the guardrail (49.5×). On the reported multiple of 48.8× both are missed — by 1.8 and 0.7 points. But on a step-7b clean basis the multiple is ~62.6× (see §4), which is 2.48× warranted and clears both thresholds. The arm still does not fire, but only because of its explicit carve-out for exceptional, proven, durable growth — and Constellation has as good a claim to that as any company on the TSX: 17% revenue growth, 76.6% recurring revenue rising 19%, and two decades of compounding. But that reads TOTAL, acquisition-funded growth. On organic growth — 3%, and 1% after currency, with the Rule of 40 failing on both bases — the carve-out would not hold and the trigger would fire. A further wrinkle worth naming: the warranted multiple already prices in high-teens growth (g_near 13.0%) and still says 48.8× is nearly twice too much, so invoking that same growth again to block the Do-Not-Buy arguably counts it twice. We read it on the consolidated engine because acquisition-funded growth is Constellation's model rather than a failure of it — but a reader who reads it on organic growth reaches DO NOT BUY, not HOLD, and is entitled to. Arm (b) needs the Expensive band plus a live de-rating catalyst — a structural business-model threat or an armed systemic tail that materially applies. The 12 August macro report carries the S&P-500-concentration / AI-earnings-quality tail as armed but receding (equal-weight is beating cap-weight), and in any case CSU is not in that cohort: it is a low-beta vertical-market-software acquirer, not levered to AI capex or monetisation, and not an index top-weight. So arm (b) does not fire either. The outcome is HOLD — but a reader should know it was not a wide miss.
⚠️
Dilution / Accounting
Caution — the headline earnings number is not what it looks like. Q2 net income rose 386% to US$274M. Constellation’s own release states that excluding foreign exchange and the IRGA liability revaluation, the increase was 8%. So roughly 97% of the headline growth is non-operating. We scored Quality and Valuation on the clean basis, not on the 386% — and the clean basis makes the multiple worse, not better (see §4). Share count is stable at ~21.2M and stock-based compensation is immaterial — there is no dilution issue; this flag is purely about earnings quality.
Binary / Regulatory Event
None pending. No regulatory action, no takeover, no binary approval. Acquisition activity is continuous and individually immaterial — that is the business model, not an event.
Severe Driver Collapse
Driver scores 52 (Neutral) — nowhere near the ≤15 collapse threshold. Enterprise software spending is steady; the pressure is on the cost of the acquisition capital, not on demand.
3

Pillar Detail: Business Quality

A deep dive into the Quality score: business economics, moat, ROIC and the industry benchmark.
Business Quality — Pillar Score
A genuinely exceptional compounder — but this is the quarter where the organic engine visibly slowed, and we have marked it down for that.
80
conf 78% · Mature compounder · Vertical-market software (serial acquirer)
The Q2 print, honestly read. Revenue rose 17% to US$3,335M. But organic growth was 3% — and only 1% after adjusting for currency. Nearly all the growth was bought, not grown. Management attributed the softness to accounting normalisation at Altera, comparison distortions at Dark Matter, recent Lumine acquisitions and the loss of a large South American customer. Organic maintenance growth excluding Altera was 4% in constant currency, which management conceded is below the historical trend. This is the single most important fact in this report, and it is why Quality comes down from 84 to 80.
Sub-signalValueBenchmarkScoreRead
Revenue trajectory+17% YoY (Q2); H1 +19%VMS peers ~8–12%82 Strong — but acquisition-funded
Organic growth3% (1% FX-adj)CSU history ~5–7%42 The weak leg. Decelerating, and management says so
Recurring revenue mixUS$2,554M = 76.6% of revenue, +19%>70% excellent90 Exceptional durability — the reason the base is safe
Cash generationFCF US$2,795M · US$131.9/shareFCF margin 22.1%86 The number the Street anchors on — see §4 for why we do not
ROE / ROA19.7% / 8.0%Software median ROE ~15%80 High returns on a capital-hungry model
Balance sheetNet debt/EBITDA ~1.0×<2.0× healthy85 Ample capacity to keep acquiring
Industry benchmark — Rule of 40, computed two ways.
As reported: 17% revenue growth + 22.1% FCF margin (US$2,795M on US$12,640M TTM revenue) = 39.1fails, narrowly.
Organic only: 3% + 22.1% = 25.1 — fails clearly.
Both are true. The reported figure says the machine works; the organic figure says the machine now depends almost entirely on continuing to buy. For a serial acquirer that is an acceptable answer while capital is cheap and targets are available — which is exactly what the Drivers pillar is now questioning. Benchmark score: 58.

Pricing Power

85
Annual maintenance uplifts absorbed for two decades

Network Effects

50
N/A by business model — scored neutral

Switching Costs

92
Mission-critical VMS; replacing it means re-engineering operations

Cost Advantage

62
Trimmed — PE competition is bidding up the same assets

Intangibles

68
Reputation as an acquirer-of-choice is real but imitable
Moat score = 71 (average of the five)
Competitive Environment. Constellation does not compete for customers so much as for acquisitions — that is where its moat is actually under attack.
CompetitorThreat typeShare trajectoryMoat-erosion vector
Private equity (Thoma Bravo, Vista, Hg)Bidding for the same VMS assets CSU losing deal share on larger assets Raises entry multiples → compresses deployment ROIC. The core erosion vector.
Roper, Topicus (its own affiliate), Vitec, Volaris rivalsCopycat serial acquirers Stable but crowded The model is now openly imitated; scarcity of the strategy is gone
Vertical SaaS natives + AI-built alternativesProduct substitution at the low end Stable — slow-burn Long-dated: modern cloud VMS and AI-assisted build could lower switching costs a decade out
Net effect on the moat: Switching Costs held at 92 — customer retention is not deteriorating and the 76.6% recurring base with +19% growth proves it. Cost Advantage trimmed to 62 — the advantage was buying cheap, and competition for the assets is structurally raising the price. Overall competitive threat: moderate, trajectory stable on customers, losing on deal supply.
ROIC & capital allocation. ROE 23.3% on a model that reinvests essentially all cash into acquisitions. Management skin in the game is unusually strong — Mark Leonard's letters and the founder-aligned culture are a genuine governance asset, and the dividend is a token US$1.00/quarter (payout ratio 8.8%) precisely so capital stays in the compounding engine. Capital allocation score: 86.
4

Pillar Detail: Valuation Attractiveness

Sector-appropriate multiples, FCF yield, reverse-DCF implied growth, embedded optionality, and the analyst-consensus cross-check.
Valuation Attractiveness — Pillar Score
Expensive on the sector's primary multiple. A great business at a price the framework will not call attractive.
35
conf 72% · anchor: P/E · warranted ratio 1.93 → Expensive
A correction, published rather than buried. An earlier draft of this report led with a “currency correction”: it claimed the provider’s 48.8× trailing P/E wrongly divided a Canadian-dollar price by US-dollar earnings, and restated it as 35.0×. That was backwards, and the pre-publication audit caught it. The provider’s C$63.05 trailing EPS is the US figure already converted — the four reported quarters (US$9.89 + US$5.19 + US$17.32 + US$12.93) sum to US$45.33, and ×1.3938 that is C$63.18. So 48.8× was a correctly matched C$/C$ figure all along, and the “correction” was what introduced a mismatch.

This mattered. At 35.0× the name sat just above the guardrail and we ruled the Valuation-Ceiling gate clear. At the true 48.8× the gate fires and every horizon caps at HOLD. We are showing the error because a framework that only ever publishes its conclusions is not one you can calibrate against.
MultipleCurrentWarranted / benchmarkRead
Trailing P/E (anchor)48.8× (C$3,079.86 ÷ C$63.05) Warranted 25.3× → ratio 1.93; IT guardrail 33× Expensive — on both tests
Clean P/E (step 7b)~62.6× (est. US$747M clean TTM earnings) Warranted 25.3× → ratio 2.48 Worse than reported
EV/EBITDA (currency-matched) 17.3× (US$49.8B EV ÷ US$2,877M TTM EBITDA)Software median ~20× Below median — the genuine counter-argument
FCF yield (on EV)5.6% (US$2,795M ÷ US$49.8B)5–8% attractive Attractive
P/FCF16.8× Cheap — but not the sector's primary multiple (see below)
P/B12.0×Not meaningful (intangible-heavy)
The earnings-quality step makes this worse, not better — and we are carrying that through. Q2 net income to common was US$274M, but Constellation states that excluding foreign exchange and the IRGA liability revaluation the increase was 8% — implying clean Q2 earnings of roughly US$60M, an overstatement of about US$214M. Applying that to the trailing twelve months (US$961M reported, EPS-implied) gives clean earnings near US$747M, or US$35.28 per share (C$49.17). Against C$3,079.86 that is a clean trailing P/E of ~62.6×2.48× the warranted multiple, versus 1.93× on the reported number.

This is an estimate: it adjusts Q2 only, and Q1 2026 likely carries some of the same distortion, so if anything it understates the clean multiple. We show it because the framework requires scoring off clean earnings, and because it is the number that decides how close this came to a Do-Not-Buy (see §2). It is also why Valuation scores 35 rather than something kinder.
The warranted-multiple anchor.
Discount rate r = 9.20% = 4.70% US 10-year (macro report, 12 Aug 2026) + 4.50% equity risk premium + 0.0% risk add-on (Business Quality ≥ 65).
Growth g_near = 13.0% = 0.75 × 17.3% consensus revenue growth, inside the 15% secular cap. g_term = 3.0%. Two-stage warranted multiple = 25.3×.
Actual 48.8× ÷ warranted 25.3× = 1.93Expensive (≥1.40). The warranted multiple was 27× on 4 August; it fell purely because the 10-year yield rose. Higher-for-longer mechanically lowers what this business is worth.
The cash-earnings argument, and why we are not using it as the anchor. There is a real case that P/E flatters nothing here: Constellation amortises acquired intangibles through the income statement, which is a non-cash charge, so IFRS earnings understate the cash the business throws off. On that lens — 16.8× free cash flow, a 5.6% FCF yield, 17.3× matched EV/EBITDA — the stock looks reasonable, even cheap.

We considered anchoring on cash and rejected it, for three reasons. First, the framework assigns Information Technology the P/E as its primary multiple; “P/FCF for serial acquirers” is not a sanctioned substitution, and inventing one to reach a friendlier answer is the failure mode the guardrail exists to prevent. Second, the earnings-quality step is meant to remove non-operating income — and run honestly here it makes the multiple worse, not better: strip out the FX and IRGA revaluation and clean Q2 earnings are roughly US$60M, not US$274M. Using an earnings-quality adjustment to improve a multiple inverts its purpose. Third, for a serial acquirer, acquisitions are capital expenditure — calling the amortisation non-cash while the cash goes out the door to buy the next business is only true if deployment returns hold up, which is precisely what is now in question.

So: the EV/EBITDA and FCF readings are recorded as genuine, and they are why this is a HOLD rather than something harsher. They are not enough to override the anchor.
Embedded optionality / free upside. At 48.8× earnings, none of this makes the entry price attractive. Optionality is a reason to keep watching a name you already like — it is not a discount.
Analyst consensus — and it disagrees with us. 12 analysts. Consensus C$3,963.63 (median C$3,960.58, high C$5,507.07, low C$3,298.24) — +28.7% above spot, with even the lowest target 7.1% above today's price. Grades: 3 Strong Buy, 7 Buy, 2 Hold, 0 Sell — 83% bullish. Consensus score 80, and it is the strongest argument against this report's verdict. The Street is valuing CSU on cash earnings and forward growth; we are applying a sector guardrail to the trailing multiple. Both are defensible. We are telling you which one we used.

FMP ratings cross-reference: B (3/5). Discounted-cash-flow 5/5, ROE and ROA 4/5 — but price/earnings, price/book and debt/equity all 1/5. A third-party mechanical screen reaches the same split verdict: good business, expensive stock.
5

Pillar Detail: Underlying Drivers

The dominant external force the stock is tethered to, scored 0–100. A context pillar: it does not change the base signal — it feeds amplification (tailwind ≥65 can lift BUY→STRONG BUY; headwind ≤35 can push SELL→STRONG SELL).
Primary Driver
Cost of acquisition capital + enterprise software spending
52
Neutral — no amplification (36–64 band)
Downgraded from 60 to 52, and the reason is the macro regime change. Constellation's engine is funded capital deployed into acquisitions. What matters most is not software demand — that is steady — but the hurdle rate against which every deal is judged. The 12 August macro report established that Federal Reserve cuts are now priced out: the 2-year yields 4.22% against a 3.63% funds rate, and roughly 44% odds sit on a September hike. The 4 Aug report scored this driver assuming an easing path that has since been withdrawn.
HorizonAssessmentScore
Historical (25%) Two decades of high-teens deployment ROIC through multiple rate regimes — a genuinely proven engine.78
Current (50%) Higher-for-longer raises the hurdle rate at the same time private-equity competition raises entry multiples. Both squeeze the same spread. Enterprise software demand itself remains stable.42
Forward (25%) If the September FOMC hikes, the arithmetic worsens; if the labour crack forces cuts by 2027, it improves sharply. Genuinely two-sided, which is why this is Neutral rather than a Headwind.50
Driver score 52 — Neutral. Outside the ≥65 / ≤35 amplification bands, so the base signal stands unamplified at every horizon. Thesis-invalidation floor: sustained evidence that deployment ROIC has fallen into the low teens — visible as rising purchase multiples in the annual letter or a step-down in cash-on-cash returns. That, not a soft quarter, is what would break this name.
6

Pillar Detail: Economic Alignment

How the current economic climate sits relative to this stock, read from the latest Macro-Economic report. Classifies the macro pressure (Tailwind / Neutral / Headwind) — the second amplification input — and frames a long entry as Trend-Following or Contrarian with a 0–100 conviction.
Stance · Pressure
Neutral · Neutral
50
conviction

The 12 August macro report carries CSU.TO directly in its watchlist forecast at Neutral / Neutral / Outperform (Short / Medium / Long), and its parent sector Information Technology (XLK) at the same N/N/O. The macro read is explicit about why: CSU's acquisition engine is financed, and the rate cuts that would have cheapened it were priced out this month. That is a genuine downgrade from the Tailwind assumption of early August — the macro report trimmed CSU from Outperform to Neutral on the short and medium horizons for exactly this reason. Long stays Outperform: over 3–5 years the compounding engine dominates the rate cycle. Pressure Neutral means no amplification fires in either direction — and with the base signal already HOLD on all three horizons, amplification could not have applied in any case (HOLD never amplifies).

Source: watchlist-signal · Macro report 2026-08-12

7

Pillar Detail: Entry/Exit Timing

The risk-reward framework, relative strength vs SPY and the sector ETF, the macro overlay, news-derived sentiment, and the catalyst cluster.
Entry/Exit Timing — Pillar Score
Above both moving averages, but the post-earnings session went the wrong way.
52
conf 50% · MTF confluence bearish · entry not yet confirmed
Sub-signalReadingScore
Price vs moving averages (raw, unadjusted) C$3,079.86 vs 50-DMA C$2,888.15 and 200-DMA C$2,852.42 — above both72
Momentum+13.0% 1mo · +24.8% 3mo · +32.5% 6mo · but −27.6% 12mo and −1.2% over 2 weeks58
Post-earnings reaction−4.51% the session after Q2 (C$3,220.61 → C$3,075.41)30
52-week range position35% of the C$2,258–C$4,605 range — 33% below the high60
Daily RSI / MACDRSI 61.6, MACD histogram +41.2 and rising68
Relative strengthvs SPY +10.4pp (1mo) and +15.1pp (3mo); vs XLK +9.7pp / +11.6pp82
Risk-reward to stopStop C$2,820 is ~8.4% below spot — ~1.9 ATR (daily ATR C$138)52
The multi-timeframe picture is genuinely split, and we are not going to smooth it over. Daily reads strong uptrend and price sits above both the 50- and 200-day averages. But monthly is a downtrend (the stock is still 33% below its 52-week high), and both hourly and 15-minute have rolled over since the Q2 print. The tool's own verdict is bearish confluence. That combination — healthy medium-term structure, deteriorating short-term structure, immediately after an earnings disappointment — is the classic "wait for the pullback to finish" setup. Note it is not what caps the signal here — Gate 3 does that, on valuation, at every horizon. Timing merely confirms there is no reason to hurry.
Sentiment. Analyst grades are firmly positive (83% bullish, 12 covering) but the firm-by-firm grade feed was unavailable this run (FMP returned HTTP 402 — premium endpoint), so we cannot show individual upgrade/downgrade actions and have cut the sentiment sub-signal's confidence accordingly. News tone since 11 Aug is mixed: the earnings beat was widely reported, but the substantive coverage — Longyield's "the moat is being repriced" — focuses on the organic-growth deceleration rather than the headline.
Catalysts. Clear calendar. Q2 has passed; the dividend goes ex on 18 September (US$1.00, payable 9 October); Q3 results are due around early November. No clustering — catalyst density score 75, no position-size reduction warranted on event grounds.
8

Economic Event Risk

High-impact macro releases in the next 14 days that could swing this stock, plus the last 7 days of surprises.

Upcoming events (next 30 days)

DateEventImpactForecastPreviousRelevant?Why
2026-08-19FOMC minutes (July meeting)High⚠ MediumSets the hurdle rate for CSU's acquisition arithmetic — three members dissented for a hike in July
2026-09-04US nonfarm payrolls (Aug)High−23k⚠ MediumA second negative print would revive the cut path and lower CSU's discount rate
2026-09-18CSU ex-dividend (US$1.00)LowUS$1.00US$1.00✅ YesImmaterial to price — payout ratio is 8.8% by design

Recent surprises (last 7 days)

DateEventActualForecastSurpriseImpact
2026-08-11Constellation Q2 2026 resultsHighRev US$3,335M (+17%), organic 3% (1% FX-adj)Negative — stock fell 4.51% the next session (C$3,220.61 to C$3,075.41) on the organic-growth miss
2026-08-12US CPI (Jul)High3.4% headline / 2.5% core3.4% / 2.5%In line — core disinflating, but not enough to revive rate cuts

Information Technology is a low macro-sensitivity sector in this framework, so a 10% macro weighting applies rather than the 20% used for banks or miners. That said, CSU is more rate-sensitive than a typical software name because its growth is financed — the 19 August FOMC minutes matter more here than they would for an organic compounder. No high-impact event falls within three trading days, so no WAIT-FOR-EVENT override applies.

9

Multi-Timeframe Technical Analysis

Trend, RSI and breakout status across monthly / weekly / daily / hourly / 15-minute, with a confluence verdict.
TimeframeTrendDirectionRSIMACDKey S/RBreakoutVol
MonthlyDowntrendBearish44.7−272.7, hist −126.0S: 2,585 R: 3,856None0.42x
WeeklyUptrendBullish55.5+9.7, hist +79.5S: 3,156 R: 3,167None0.71x
DailyStrong uptrendBullish61.6+125.7, hist +41.2S: 2,989 R: 3,167None1.04x
HourlyDowntrendBearish39.3−44.4, hist −22.3S: 3,081 R: 3,208None2.02x
15-minDowntrendBearish48.6−16.9, hist +14.3S: 3,004 R: 3,251None3.22x
Confluence: Bearish — higher timeframes constructive, lower timeframes rolling over · MTF Score 48

Read top-down this is a stock in a medium-term recovery that just hit a short-term setback. The monthly chart is still a downtrend because the stock is 33% below its 2025 high; weekly and daily have recovered and price sits above both the 50- and 200-day averages. But hourly and 15-minute both turned down after the Q2 print, on elevated volume (2.0× and 3.2×) — that is real selling, not drift. The level that matters is C$2,890–2,990, where the 50-DMA and the daily support shelf converge. A tested higher low there completes the technical entry group; a break below it would put the C$2,820 stop in play and change the medium-term read.

10

Price Chart (6-Month Daily)

A 6-month daily close line with SMA50 and key support/resistance — the visual companion to the MTF table.

CSU.TO daily close, 11 Feb – 12 Aug 2026 (C$, unadjusted; the in-progress 13 Aug session is excluded so the series does not drift). The stock reclaimed its 200-day average in late July, ran to C$3,304 on 10 Aug, then fell 4.51% on 12 Aug after the Q2 print to close at C$3,075.41. This report is stamped at C$3,079.86. The C$2,890–2,990 band is where the technical entry trigger sits — it is not where the valuation re-opens (see §12).

11

Scenario Summary

Bull / Base / Bear 12-month price paths with triggers and probability weights.

Bull C$4,200 (25%)

Organic growth reaccelerates above 5% as the Altera and Dark Matter distortions annualise out, capital deployment steps up at intact ROIC, and the earnings base roughly doubles on organic recovery — which has to happen while the Q2 FX and IRGA boost washes out of the comparatives, not with its help. C$4,200 is about 33× a normalised C$127 of earnings; that is 66.6× today's reported C$63.05 and about 2.6× the clean C$49.17 the Valuation pillar actually scores off. A demanding bar, and entirely an earnings story rather than a re-rating story. +36% from C$3,080. Trigger: two consecutive quarters of organic growth above 5% constant-currency.

Base C$3,400 (55%)

The engine keeps working: mid-to-high-teens total revenue growth on continued acquisitions, organic stabilising in the 3–5% range, and earnings compounding into the multiple rather than the multiple expanding. +10.4% over 12 months — well below the C$3,964 analyst consensus, because at 48.8× trailing earnings a re-rating has to be earned by organic recovery, not assumed.

Bear C$2,400 (20%)

Organic growth stays near 1%, private-equity competition keeps entry multiples elevated, and the market decides the acquisition engine is a treadmill rather than a compounder — the multiple compresses to about 38× trailing. −22.1% to C$2,400, approaching the C$2,258 52-week closing low (C$2,196 intraday). Note that even this bear case leaves the stock above the 33× guardrail. Trigger: a third consecutive quarter of sub-3% organic growth, or evidence in the annual letter that purchase multiples have stepped up.

12

Entry / Exit Rules

Three independent entry paths (Fundamental · Technical · Catalyst) and three exit triggers (Stop-Loss · Thesis · Profit-Target). Any one entry path is a valid entry — the more that agree, the larger the position the conviction ladder suggests. Exits are graded by severity, not count.

How to read this — the Conviction Ladder

The three entry groups are alternative paths to a buy, not a checklist. A group counts only when all its sub-conditions hold. How many groups are satisfied sets the suggested size — it does not gate whether you may enter: 1 group = Half-Size (a valid starter/scale-in), 2 = Full-Size, 3 = Over-Size (highest conviction); 0 = Wait (no path open yet). A strong overall signal can still read Wait here when the stock is well above its entry zones — that flags "good business, no entry edge right now," not a contradiction. Exits are graded by severity of what is live, not by a count: a hard stop is an Exit on its own.
Entry conviction: Wait0 of 3 groups met — no entry path open

Fundamental — not MET

Not cheap on the sector primary multiple — 48.8× is above the 33× guardrail.
⛔ Price C$3,079.86 vs fair value C$3,400 — only 10% below, and the name sits in the Expensive band
✅ No earnings within 7 days — Q2 cleared 11 Aug, Q3 not until ~November
✅ Underlying-Driver score 52 ≥ 50

Technical — not MET

Above both averages, but there is no confirmed entry trigger.
⛔ A close above the 50-DMA on volume >1.5× the 20-day average — price has been above the 50-DMA for weeks (no fresh cross) and volume ran 1.04×
⛔ OR a tested bounce off weekly support (C$3,155) with a higher low — price is below that level, not bouncing off it
✅ RSI 61.6 — inside the 35–65 band
✅ MACD histogram positive for ≥2 sessions (+41.2, rising)

Catalyst — not MET

The catalyst fired and went the wrong way.
⛔ Post-earnings move >+5% within 24h — actual was −4.51%
· Guidance raised or maintained — CSU does not guide
⛔ Volume >2× the 20-day average

Forecast: Fundamental group: NOT met, and it cannot be met at this price. An Expensive-band name fails the fundamental path regardless of the gap to fair value. And it does not re-open on a modest pullback: at C$2,890 the trailing multiple is still 45.8×, at C$2,990 still 47.4×. On price alone this path needs roughly C$2,233 (1.40× warranted) or C$2,081 (the 33× guardrail) — 27–32% below spot. The realistic route is through earnings, not through price: organic earnings growing fast enough to compress the multiple from the denominator up — and doing so against a headwind, because the Q2 FX and IRGA boost flatters the current base and its unwind pushes the multiple the wrong way (that is why the clean multiple is 62.6×, not 48.8×). The C$2,890–2,990 band is a technical trigger only. The ladder reads Wait.
Technical group: ~2–4 weeks, Moderate confidence. The reachable trigger is a pullback into the C$2,890–2,990 zone (the 50-DMA and the daily support shelf) that holds with a higher low. Daily ATR is C$138, so that zone is ~1.3 ATR below spot — well within a normal fortnight's range given the post-earnings drift. Alternatively a reclaim of C$3,167 weekly resistance on >1.5× volume would confirm from above; that needs a catalyst we do not currently see.
Catalyst group: Unlikely before ~November — the next scheduled trigger is Q3 earnings. The 18 September ex-dividend date is far too small (US$1.00 on a C$3,080 share) to qualify.

Exit action: Holdno exit trigger is live — hold the position

Stop-Loss — not LIVE

⛔ Two consecutive daily closes below C$2,820 (beneath both the 50- and 200-DMA — the medium-term structure would have failed)

Thesis Invalidation — not LIVE

⛔ A third consecutive quarter of organic growth below 3% constant-currency
⛔ Evidence that deployment ROIC has fallen to the low teens (annual letter / disclosed purchase multiples)
Competitive invalidation: private-equity bidding sustainably prices CSU out of its core tuck-in range, visible as a step-down in capital deployed per year
⛔ Recurring-revenue growth falls below 10% — the durability leg breaking

Profit-Target — not LIVE

⛔ Price reaches the C$3,964 analyst consensus
⛔ AND daily RSI >70
⛔ AND organic growth has not recovered above 5% to justify the re-rating

Forecast: Stop (C$2,820): Unlikely in 4–6 weeks — but closer than it was. It sits 8.4% below spot, just under the 200-DMA at C$2,852. That is ~1.9 ATR, so a sustained post-earnings drift could reach it; the 4 Aug report had the equivalent stop 18% away. Risk has genuinely increased.
Thesis invalidation: Moderate, and this is the one to watch. Two of the four conditions key off organic growth, which just printed 3% (1% FX-adjusted). One more soft quarter in November puts this group within a single print of firing. It is not live today — but it is no longer theoretical.
Profit-target: Unlikely — requires a 28.7% rally to consensus and an overbought RSI, on a name whose organic growth is decelerating.

Imagine you act at the current price of C$3,079.86 · as of 13 Aug 2026

What if you bought now?

You'd be risking ~C$260 / −8.4% to the C$2,820 stop to gain ~C$320 / +10.4% to the C$3,400 base case — about 1.2:1, which is not a ratio worth acting on.

What you're risking. You would be paying 48.8× trailing earnings for a business whose organic growth just printed 3% — 1% after currency. That is 1.93× what the rate-and-growth arithmetic warrants and comfortably above the 33× line this framework treats as rich for software. You would also be buying two days after a disappointing print, into a −4.51% session, with no entry path open on any of the three groups.

What you're gaining. Genuinely: one of the best capital-allocation records in public markets, 76.6% recurring revenue growing 19%, a 5.6% free-cash-flow yield on enterprise value, and a currency-matched EV/EBITDA of 17.3× that sits below the software median. Twelve analysts see 28.7% upside and even the lowest target is above spot.

The read: the business is not the problem — the entry price is. The conviction ladder reads Wait, and that is the honest answer: no fundamental, technical or catalyst path is open today. The C$2,890–2,990 zone would open the technical path (the 50-DMA sits there) but not the valuation one — at those prices the multiple is still 45–47×. To be cheap on price alone you would need roughly C$2,233, some 27% lower. The likelier route is earnings recovering into the multiple rather than the price falling to meet it.

What if you sold now?

You'd be giving up a 5.6% FCF yield and the compounding engine to protect a 48.8× multiple with decelerating organic growth.

What you're giving up. This is a genuinely exceptional business and selling it means trying to buy it back. Recurring revenue is 76.6% of the total and growing 19%; the acquisition engine has compounded capital for two decades; the balance sheet has capacity at 1.0× net leverage.

What you're protecting. No exit rule is triggered. The stop is 8.4% away, no thesis-invalidation condition has fired, and the profit-target needs a rally we do not expect. What you would be protecting against is multiple compression from 48.8× while organic growth runs at 1–3% — a real risk, but not a mechanical trigger.

The read: HOLD means hold. If you own it, the framework gives you no reason to sell today. If you don't, it gives you no reason to start here either.

13

Position Sizing Context

Illustrative portfolio math (not advice) translating conviction into an allocation given risk-per-share and volatility.

Position sizing not computed — specify your portfolio allocation and role for sizing guidance.

14

Calibration Snapshot

Machine-readable snapshot of every score, level and signal, saved alongside the HTML so the next run can compute deltas.
{
  "ticker": "CSU.TO",
  "date": "2026-08-13",
  "version": "v6",
  "brand": "",
  "company": "Constellation Software Inc.",
  "currency": "CAD",
  "exchange": "TSX",
  "exchange_ticker": "TSX:CSU",
  "isin": "CA21037X1006",
  "api_ticker": "CSU.TO",
  "price_at_rating": 3079.86,
  "signal_short": "HOLD",
  "signal_medium": "HOLD",
  "signal_long": "HOLD",
  "primary_signal": "HOLD",
  "short_hold_reason": "expensive",
  "short_entry_confirmed": false,
  "short_cap_reason": "Base signal is HOLD from the Decision Matrix row High Quality (80) / Expensive (35) / Any -> HOLD, then re-capped by Gate 3 (Valuation Ceiling): trailing P/E 48.8x breaches the 33x IT guardrail and sits at 1.93x warranted (2.48x on a step-7b clean basis). The short technical-confirmation cap would independently have held the short at HOLD - Technical and Catalyst both unmet, post-earnings move -4.51% - but valuation, not timing, governs here.",
  "quality_score": 80,
  "valuation_score": 35,
  "timing_score": 52,
  "driver_score": 52,
  "lifecycle_stage": "mature_compounder",
  "quality_detail": {
    "industry_benchmark_name": "Rule of 40 (reported vs organic)",
    "industry_benchmark_value": 39.1,
    "industry_benchmark_score": 58,
    "moat_score": 71,
    "roic_percentile_vs_peers": 84,
    "capital_allocation": 86,
    "management_skin_in_game": 88,
    "organic_growth_pct": 3.0,
    "organic_growth_fx_adj_pct": 1.0,
    "recurring_revenue_pct": 76.6
  },
  "valuation_detail": {
    "fcf_yield_on_ev": 5.62,
    "p_fcf": 16.75,
    "trailing_pe": 48.8,
    "ev_ebitda_matched": 17.3,
    "ev_ebitda_provider_unmatched": 29.7,
    "historical_valuation_decile": 3,
    "eps_currency_note": "trailing EPS C$63.05 is CAD (US$45.33 TTM x 1.3938 = C$63.18) - the provider P/E was correct"
  },
  "warranted_multiple": 25.3,
  "actual_multiple": 48.8,
  "val_multiple_basis": "trailing P/E (IT sector primary multiple)",
  "discount_rate_r": 9.2,
  "risk_free_10y": 4.7,
  "g_near": 13.0,
  "g_term": 3.0,
  "warranted_ratio": 1.93,
  "val_band": "expensive",
  "clean_pe": 62.6,
  "clean_pe_basis": "step-7b estimate: TTM US$961M reported less ~US$214M Q2 FX/IRGA revaluation = ~US$747M clean; adjusts Q2 only so likely understates",
  "clean_warranted_ratio": 2.48,
  "clean_peg": null,
  "nonop_pct_of_net_income": 97.0,
  "competitive_share_trajectory": "stable",
  "competitive_threat_level": "moderate",
  "timing_detail": {
    "mtf_confluence": 48,
    "risk_reward_score": 52,
    "relative_strength_vs_spy": 15.1,
    "relative_strength_vs_sector": 11.6,
    "catalyst_clustering_score": 75,
    "dynamic_macro_weight": 0.1,
    "price_vs_50dma": "above",
    "price_vs_200dma": "above",
    "post_earnings_move_pct": -4.51
  },
  "economic_alignment_stance": "Neutral",
  "economic_alignment_conviction": 50,
  "economic_alignment_pressure": "Neutral",
  "economic_alignment_source": "watchlist-signal",
  "macro_report_date": "2026-08-12",
  "overall_confidence": 50,
  "audit_corrections": [
    "BLOCKER: an earlier draft inverted the currency read and restated the 48.8x trailing P/E as 35.0x. C$63.05 EPS is already CAD (US$45.33 x 1.3938 = C$63.18). Corrected to 48.8x, which fires Gate 3 and moved medium and long from BUY to HOLD.",
    "MAJOR: post-earnings move was -4.51% (C$3,220.61 to C$3,075.41), not -5.1%.",
    "MAJOR: EV/EBITDA currency-matched is 17.3x, not the provider 29.7x.",
    "MAJOR: Rule of 40 is 39.1 (fails), not 41 (passes).",
    "MAJOR: relative strength was missing; added +15.1pp vs SPY over 3 months."
  ],
  "fair_value_est": 3400,
  "stop_loss": 2820,
  "target_price": 3400,
  "scenario_base_target": 3400,
  "scenario_bull_target": 4200,
  "scenario_bear_target": 2400,
  "analyst_consensus_target": 3963.63,
  "analyst_target_high": 5507.07,
  "analyst_target_low": 3298.24,
  "analyst_target_upside_pct": 28.7,
  "analyst_grades_consensus": "buy",
  "analyst_bullish_pct": 83.3,
  "analyst_coverage_count": 12,
  "fmp_rating": "B",
  "fmp_overall_score": 3,
  "recent_upgrades_30d": null,
  "recent_downgrades_30d": null,
  "entry_groups_met": 0,
  "entry_conviction": "Wait",
  "exit_groups_live": 0,
  "exit_action": "Hold",
  "gates_triggered": [
    "Valuation Ceiling (Gate 3)"
  ],
  "gates_caution": [
    "Dilution / Accounting (earnings quality)"
  ],
  "hard_gate_state": "caution",
  "do_not_buy_triggers": [],
  "next_update_date": "2026-08-27",
  "next_update_basis": "default +14d (Q2 cleared 11 Aug; next impactful event is Q3 earnings ~Nov)",
  "next_check_date": "2026-08-27",
  "analysis_status": "on-going",
  "finder_ticker": "CSU.TO",
  "finder_exchange": "TSX",
  "user_horizon": null,
  "user_allocation_pct": null,
  "portfolio_role": null
}
15

Data Sources & Methodology

Audit trail of every data source: fully available (✓), fallback (⚠), or failed (✗), plus provenance-based confidence haircuts.
Data Source Status
get_company_profile CAD quote, USD reporting currency, ISIN CA21037X1006. There is no provider currency mismatch — its trailing EPS is already CAD-converted (see §4)
get_financial_ratios ROE 23.3%, FCF/share US$131.89, net debt/EBITDA ~1.0×
get_income_statement ⚠ Latest quarter returned was 31 Mar 2026 — it predates the 11 Aug Q2 release. Q2 figures taken from the company's own press release instead
get_multi_timeframe_analysis All five timeframes returned; confluence bearish
get_price_target_consensus n=12, consensus C$3,963.63, dispersed panel (not degenerate)
get_grades_consensus 3 Strong Buy / 7 Buy / 2 Hold / 0 Sell
get_stock_grades ✗ FMP HTTP 402 — premium endpoint. No firm-by-firm grade actions; sentiment sub-signal confidence cut 15%
get_ratings_snapshot B (3/5); DCF 5, ROE 4, ROA 4, but P/E 1, P/B 1, D/E 1
get_earnings_calendar ✗ Returned empty for CSU.TO. Next-earnings date taken from the Q2 release cadence (~November)
yfinance raw prices (auto_adjust=False) Unadjusted closes for every price-vs-moving-average test and for the §10 chart, per the raw-price rule
yfinance total-return (CSU.TO vs SPY, XLK) Relative strength: +10.4pp vs SPY 1mo, +15.1pp 3mo; +9.7/+11.6pp vs XLK. Total-return basis is correct for performance comparison, not for the moving-average tests above
Company press release (11 Aug 2026) Primary source for Q2: revenue US$3,335M, organic 3% (1% FX-adj), net income US$274M, and the "+8% excluding FX and IRGA revaluation" disclosure
MacroDriver-state-20260812.json Economic Alignment read from the watchlist forecast; 10-year 4.70% used as the risk-free rate
Impact on scores: A blocker was caught in pre-publication audit; it is disclosed here as well as in §4. An earlier draft claimed the provider’s 48.8× trailing P/E mixed a Canadian-dollar price with US-dollar earnings, and “corrected” it to 35.0×. That was backwards — the provider’s C$63.05 EPS is the US figure already converted (four reported quarters = US$45.33; ×1.3938 = C$63.18). At the true 48.8× the Valuation-Ceiling gate fires, and medium and long moved from BUY to HOLD as a result. Four further corrections came from the same audit: the post-earnings move was −4.51% not −5.1%; EV/EBITDA currency-matched is 17.3× not the provider’s unmatched 29.7×; the Rule of 40 is 39.1 and fails rather than 41 and passing; and relative strength was missing entirely.

Data gaps. Two endpoint failures and one stale return, none fatal. The income-statement endpoint was two days behind — it returned Q1 after Q2 had printed, which would have hidden the organic-growth deceleration that is the most important finding in this report; Q2 figures came from Constellation’s own release instead. The firm-by-firm analyst grade feed is paywalled (HTTP 402), so the sentiment sub-signal rests on the aggregate distribution and its confidence is cut 15%. The earnings calendar returned nothing, so the next-update date uses the +14-day default rather than an event peg.

Confidence 50%. The binding constraint is Valuation — Gate 3 is triggered, and the clean-earnings figure in §4 is an estimate that adjusts Q2 only. Timing is the second constraint: a split multi-timeframe picture two days after a disappointing print supports conviction in neither direction.
DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.