TSX:DSG The Descartes Systems Group Inc.

ISIN: CA2499061083
Information TechnologyApplication SoftwareLogistics SaaS
TSX · Waterloo, ON · dual-listed NASDAQ:DSGX · reports USD, trades CAD Analysis Status: On-Going
Prices in C$ (CAD). Fundamentals reported in USD; USD/CAD ≈ 1.40. Multiples put on a consistent basis — see §4.
C$103.59
-0.3%
20 Jul 2026 · Signal v6

Changes Since Last Report vs. 3 Jul 2026

Signals unchanged at HOLD / HOLD / HOLD across all three horizons — a high-quality compounder still priced above what a 4.55% 10-year and disciplined growth warrant. Price is roughly flat (C$102.69 → C$103.59, +0.9%). The one real move is Economic Alignment, re-read against the 20 Jul Stagflation-lite / energy-shock macro: stance Trend-Following → Neutral, pressure Tailwind → Neutral, conviction 68 → 52, as Technology (XLK) reads Underperform short / Neutral medium / Outperform long and DSG's trade exposure is now explicitly two-sided.

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.

The Descartes Systems Group Inc.

Descartes Systems Group is a Waterloo, Ontario-based software company that runs the Global Logistics Network — a cloud platform connecting carriers, freight forwarders, customs brokers, retailers and manufacturers so they can plan, execute and settle shipments and stay compliant with cross-border trade rules. Its core products span route optimisation and fleet telematics, transportation management, real-time shipment visibility, e-commerce and warehouse management, and — distinctively — one of the industry's deepest libraries of global customs, tariff and trade-compliance content. What sets it apart is that network plus that regulatory content: both are deeply embedded in customer workflows and get more valuable as more participants join, giving Descartes high recurring revenue, elite margins and a serial-acquirer model funded from its own cash. For a reader, think of it as the connective tissue and rule-book of global supply chains, sold as subscription software.

HorizonSignalComposite ScoreConfidenceKey Driver
Short-term (1–3 mo)HOLD4858%Expensive + lagging tape; wait for a valuation/entry reset
Medium-term (6–12 mo)HOLD5060%Great business, wrong price — Valuation Ceiling caps at HOLD
Long-term (3–5 yr)HOLD5862%Quality carries it, but entry price is rich vs warranted
Next update: 2026-08-03 — default +14d (next earnings ~2026-09-02 beyond window)
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

78
strong
conf 78%

Valuation Attractiveness

38
expensive
conf 60%

Entry/Exit Timing

54
mixed
conf 60%

Underlying Drivers

60
Neutral
conf 60%

Economic Alignment

52
Neutral
conf 55%
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
Net cash (US$377M cash vs US$8M debt); current ratio 2.05; FCF strongly positive.
Earnings Event Risk
No earnings within 14 days (next ~2–3 Sep, Q2 FY27).
⚠️
Valuation Ceiling
Clean trailing P/E ~36× ≥ warranted 24× (1.50×) AND ≥ 33× IT guardrail → caps signal at HOLD; not STRONG-BUY eligible.
Accounting / Dilution
Net income below operating income — no non-operating inflation (nonop ~1.5% of NI); SBC modest; no dilution.
Regulatory / Binary
No pending binary regulatory event.
AI-concentration systemic tail: the 20 Jul macro report keeps the S&P-concentration / AI earnings-quality unwind armed, but it does not apply to DSG — a low-beta (0.19) logistics-SaaS compounder whose earnings are clean (no non-operating markups) and not levered to the AI capex/monetisation trade. It is not in the cohort, so DNB Trigger 2(b) does not fire.
3

Pillar Detail: Business Quality

A deep dive into the Quality score: business economics, moat, ROIC and the industry benchmark.
Business Quality — Pillar Score
Elite-margin, net-cash compounder; Rule of 40 = 50
78
conf 78%

Lifecycle / sector: Growth-stage Application Software (GICS Information Technology) — logistics & supply-chain SaaS. Scored on the SaaS profile: Rule of 40, gross margin, FCF conversion, net-cash balance sheet, moat and capital allocation. Revenue is reported in USD; the stock trades in CAD — all per-share/margin reads below are kept on one consistent basis.

Sub-signalValueContextScore
Revenue growth (YoY)+14.7%Q1 FY27 US$193.6M vs US$168.7M; steady mid-teens, acquisition-assisted74
Gross margin77.5%Elite SaaS territory (>75%); stable88
Operating margin32.9%Op. income +28% YoY — real operating leverage on the network86
FCF margin / conversion35.6%US$268M FCF on US$754M rev; FCF > net income88
Balance sheetNet cashUS$377M cash vs US$8M debt — effectively debt-free; current ratio 2.0592
ROE / ROIC11.4% / modHeld down by a large acquired-goodwill/cash base, not weak economics55

Industry Benchmark — Rule of 40 (SaaS)

Revenue growth 14.7% + FCF margin 35.6% = 50.3 — comfortably PASSES (≥40); profit-weighted rather than growth-weighted, the classic quality-compounder shape. Benchmark score 80/100.
Pricing power70
Network effects82
Switching costs78
Cost advantage60
Intangible assets68

Moat average 72. The Global Logistics Network (GLN) is a genuine two-sided network — carriers, brokers, forwarders and shippers all connected — and customs/compliance content is deeply embedded in customer workflows (high switching cost). Cost advantage is only moderate: rivals can and do build competing content.

Competitive Environment

Descartes competes across three fronts, and the moat sub-scores above are derived from this read — not asserted. Its edge (the GLN + regulatory trade content) is durable, but it is a consolidator in a fragmented market with well-funded rivals, so switching-cost and cost-advantage scores are trimmed rather than maximal.
CompetitorThreat typeShare trajectory vs DSGMoat-erosion vector
WiseTech Global (CargoWise)Direct freight-forwarding platformDSG roughly stable; WiseTech gaining in forwarder ERPEnd-to-end forwarder suite competes with DSG's network + broker tools
project44 / FourKitesReal-time visibility specialistsStable — DSG's MacroPoint holds, rivals lead in pure visibilityBest-of-breed visibility can unbundle DSG's transportation module
e2openBroad supply-chain / GTM platformDSG gaining — e2open struggling operationally post-buyoutOverlaps in global trade management & compliance
SAP GTS / Oracle / Thomson Reuters ONESOURCEEnterprise-suite trade complianceStable — DSG wins on breadth of trade content/dataBundled ERP compliance can satisfy larger accounts in-house

Net effect on the moat: Switching Costs held at 78 and Cost Advantage at 60 (not higher) — content and visibility are contestable. Overall competitive threat: moderate, share trajectory stable. The tariff/trade-complexity wave is, if anything, a share tailwind for DSG's Global Trade Intelligence content vs generalist rivals.

ROIC & Capital Allocation

Capital allocation is the standout: a disciplined, serial-acquirer playbook (30+ tuck-ins) funded from FCF and net cash, most recently Drivin (last-mile, US$30M, Jul 2026). Buybacks are opportunistic, no dividend, SBC modest. Reported ROE (11.4%) understates the operating economics because the denominator is inflated by acquired goodwill and a large cash pile; incremental ROIC on the core network is high. Management skin-in-the-game is moderate (CEO Ed Ryan long-tenured; insider ownership modest). Capital-allocation sub-score 80.

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 — ~36× P/E vs ~24× warranted (1.50×); above the IT guardrail
38
conf 60%

Currency basis — read this first

Descartes reports in USD but trades in CAD (USD/CAD ≈ 1.40 on 17 Jul). Every multiple here is put on one consistent basis. Trailing P/E is clean because the data feed converts USD earnings to CAD (C$ price ÷ C$-converted EPS). But the raw FMP feed divides the CAD market value by unconverted USD per-share fundamentals, which overstates the asset-side multiples by ~1.40×. Corrected, consistent figures:

MultipleRaw feed (mixed)Consistent basisRead
Trailing P/E~36×Expensive
EV/EBITDA26.7×~19×Full
EV/Revenue11.3×~8.1×Full
P/Sales11.8×~8.4×Full
FCF yield (EV)~4.2%Fair

THE ANCHOR — Warranted-Multiple Valuation

Discount rate r = 9.0% (10-year Treasury 4.55% [FRED, 17 Jul] + 4.5% ERP + 0 risk add-on, Quality ≥ 65). Disciplined growth g_near = 10.5% (consensus ~13% haircut ×0.75, within the 15% secular-IT cap), g_term = 3%. Two-stage warranted P/E ≈ 24×, capped by the IT guardrail (33×).
Actual clean trailing P/E ~36× ÷ warranted 24× = 1.50× → EXPENSIVE (<40). Independently, 36× also sits above the 33× IT guardrail line — Expensive on the floor alone, no growth exception. This fires the Valuation Ceiling gate (caps signal at HOLD) and makes the name ineligible for STRONG-BUY amplification.

Implied-growth read (narrative colour): at C$103.59 the market embeds roughly 16% five-year growth for DSG; our disciplined estimate is ~10–11%. The price embeds more growth than the fundamentals conservatively support — i.e. you are paying today for the premium-compounder track record, not a discount.

Embedded Optionality / Free Upside

Optionality is real but a tilt (+4), not a re-rating — the in-production business is already richly priced, so this is the reason to keep watching, not a reason it is cheap.

Analyst consensus & cross-checks

Street is bullish: 14 Buy / 1 Hold (93% bullish), recommendation mean 1.6; RBC reiterated Outperform (≈C$126-equivalent), Rothschild upgraded to Buy (Apr). Triangulated consensus target ~C$130 (≈ +25% to price) — genuine relative valuation support that pulls within the band but cannot override the intrinsic anchor (weight 15% vs the anchor's 40%). Note: the automated price-target feed degraded to single-analyst coverage (target C$131.8) and its forward-P/E (22.7×) is stale/erroneous — targets here are triangulated from grades + broker notes, and Valuation confidence is haircut accordingly. FMP health rating A- (4/5), dragged only by the P/E and P/B sub-scores — consistent with "great business, rich price."

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
Global trade/freight volume × logistics-IT spend (two-sided tariff overlay)
60
Neutral — no amplification

Primary driver: global trade & freight volume × enterprise logistics-IT spend, with an explicit two-sided tariff overlay. Descartes is uniquely hedged within its own driver: a trade slowdown softens its volume-based transportation/visibility revenue, while rising tariff and customs complexity lifts demand for its Global Trade Intelligence and customs-filing content. The two partly offset.

HorizonReadBasis
Historical (12–24m)MixedSoft freight market pressured volumes; trade-compliance demand rose on tariff escalation. Revenue held mid-teens through it.
CurrentNeutral20 Jul macro = Stagflation-lite, Iran/Hormuz energy shock (Brent ~US$88); freight/volumes at risk from an oil-driven slowdown, offset by a live tariff-complexity tailwind to compliance revenue.
Forward (6–12m)Neutral / mild+Tariff regime looks structural (compliance tailwind persists); freight recovery uncertain. Net mildly constructive but not a clean tailwind.

Driver score 60 — Neutral. Below the ≥65 amplification threshold, so it does not lift the signal (and the base is HOLD, which never amplifies anyway). Not a commodity-leveraged name, so no price-trend overlay applies. Thesis-invalidation floor: a sustained global-trade/freight recession that finally overwhelms the compliance offset and pushes revenue growth below the software-sector median — that is the level at which the "durable mid-teens compounder" case breaks.

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
52
conviction

Newest macro (20 Jul): Stagflation-lite, energy-supply-shock (Iran/Hormuz). Technology XLK reads Underperform short / Neutral medium / Outperform long. Anchored on the medium horizon → Neutral pressure. DSG's own trade exposure is two-sided (freight-volume headwind vs tariff-complexity tailwind to compliance revenue), reinforcing a Neutral read. Pressure is Neutral, so it enables no amplification — the base HOLD stands unchanged.

Source: sector-map (GICS Information Technology → XLK) · Macro report 2026-07-20

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
Recovering off the lows but still a laggard; wide stop, no tight entry
54
conf 60%

Timing is the crux of the HOLD: a high-quality business, but a chart still repairing a large drawdown and lagging its benchmarks.

Risk-Reward & Position-Risk

Price C$103.59 sits ~31% below the 52-week high (C$150.74) and ~21% above the 52-week low (C$85.26) — the lower third of the range. Nearest structural support C$96 then the C$85 base; stop below C$85. Daily ATR ~C$3.9 (~3.8%). To the C$85 stop is ~4.7 ATR — a wide stop, i.e. no tight, favourable entry here. Risk-reward score 56.

Relative Strength

A laggard: down ~11% over 1 year while the broad tape rose; roughly −16% vs SPY and −11% vs the tech sector on a 3-month look. Recovering off the lows but not yet leading.

Macro overlay (low weight, 0.10)

Defensive SaaS, low beta (0.19) — barely macro-sensitive. 10-year 4.55%, VIX elevated on the Iran/Hormuz risk-off; XLK reads Underperform short / Neutral medium / Outperform long. Net neutral-to-slight-headwind near term.

Sentiment & Catalysts

Sentiment constructive: 93% bullish analyst distribution, a recent Rothschild upgrade, no downgrades in 30 days — but the stock is a laggard, so sentiment is not translating to price. Catalyst calendar is calm (clustering 75): next earnings ~2–3 Sep (Q2 FY27), nothing high-impact inside the window.
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-01US ISM Manufacturing PMIMedium⚠️ MediumFreight/goods-flow proxy — feeds DSG's transportation volumes
2026-07-29/30FOMC rate decisionHighHoldHold⚠️ Low-directLow-beta name; matters only via broad growth-multiple sentiment
~2026-09-02DSG Q2 FY27 earningsHigh✅ YesThe next real re-rating event for the stock

Recent surprises (last 7 days)

DateEventActualForecastSurpriseImpact
2026-07-17US 10-Year Treasury4.55%flat/upSlight headwind — lifts the discount rate in the warranted multiple
2026-07 (ongoing)Brent crude (Iran/Hormuz)~US$88+30% off Jul lowsRisk-off; threatens freight volumes if a slowdown follows

Nothing high-impact hits DSG inside the next 14 days — the next stock-specific catalyst is Q2 FY27 earnings in early September, well beyond this report's refresh. Macro sensitivity is low (beta 0.19); the only live macro read-through is the Iran/Hormuz oil shock threatening global freight volumes, and a marginally higher 10-year nudging the warranted multiple down.

9

Multi-Timeframe Technical Analysis

Trend, RSI and breakout status across monthly / weekly / daily / hourly / 15-minute, with a confluence verdict.
TimeframeTrendDirectionRSIMACDKey S/RBreakoutVol
MonthlyDowntrend ↓Bearish43−, fallingS: 95 / R: 110–115none0.7x
WeeklyDowntrend ↓Bearish50−, hist risingS: 89–93 / R: 110none0.9x
DailyRecovering ↗Neutral+55+, risingS: 96 / R: 106–110above 50-DMA0.7x
HourlyUptrend ↑Bullish52+, flatS: 100 / R: 105–107none0.9x
15-minDowntrend ↓Bearish44S: 101 / R: 105none4.0x
Confluence: Bearish (higher-TF) with a near-term recovery · MTF Score 45

The big picture still reads down — monthly and weekly are repairing the fall from ~C$150, so the tool tags confluence bearish. But the tradable near term is constructive: price (C$103.86) is back above a rising daily 50-DMA (~C$100), daily RSI 55 with a positive MACD, and a clean higher-low base off the C$85 low (85 → 90 → 95 → 98 → 103). Read it as basing/recovering inside a larger repair, not a fresh uptrend. Key levels: reclaim and hold C$106–110 to confirm; C$96 then C$85 are the supports that must hold.

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.

DSG.TO 6-month daily (CAD) with 50-day SMA. Recovered off the C$85 base to ~C$104; still below the pre-drawdown range. Above a rising 50-DMA.

11

Scenario Summary

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

Bull C$140 (25%)

Multiple re-rates back toward its premium-compounder range (mid-30s×) as the tariff-complexity wave accelerates Global Trade Intelligence revenue, the freight cycle turns, and M&A stays accretive. ~+35% from C$103.59. Trigger: two quarters of accelerating organic growth + a freight-volume recovery.

Base C$112 (55%)

The most probable path: steady mid-teens revenue growth and elite FCF continue, the forward multiple holds ~30–32×, and the stock compounds with modest re-rating as it repairs the drawdown. ~+8%. This is the probability-weighted centre of gravity — a quality hold, not a bargain.

Bear C$82 (20%)

The multiple compresses toward warranted (24–26×) on a growth stumble, a freight/trade recession that overwhelms the compliance offset, or a broad growth-multiple de-rate. ~−21%, into the C$85 base. Note: this is an idiosyncratic multiple/volume bear — DSG is NOT in the AI-concentration cohort, so it does not inherit that systemic tail. A credible rival (WiseTech gaining forwarder share) is the company-specific trigger.

Probability-weighted 12-month fair value ≈ C$113 (0.25×140 + 0.55×112 + 0.20×82) — roughly +9% from C$103.59, base-case-centred. The intrinsic warranted anchor (~C$78–85) sits well below the market's premium-compounder price; the scenarios reflect the market's demonstrated willingness to pay that premium, not an endorsement of it.

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

Trades above intrinsic fair value — Expensive band, no valuation edge.
⛔ Price C$103.59 < intrinsic fair value ~C$88 (warranted 24× basis)
✅ No earnings within 7 days
✅ Underlying-Driver score ≥ 50 (60)

Technical — not MET

Above a rising daily 50-DMA, but higher timeframes still down and no volume-confirmed breakout.
⛔ Daily close > 50-DMA (~C$100) on >1.5× volume
⛔ OR a confirmed reclaim/hold of C$106–110 with a higher low
✅ RSI 35–65 (55)
✅ MACD histogram positive ≥ 2 days

Catalyst — not MET

No event in the window; last earnings (3 Jun) fell −4.6%.
· Post-earnings move > +5% with guidance raised
· Volume > 2× average on the move

Forecast: Fundamental group is the gating one and is Unlikely near term — it needs either a pullback into the C$85–90 base (a ~15% drop) or a multiple reset, neither in the base case. Technical group is Moderate: a confirmed reclaim of C$106–110 on volume could come within 2–4 weeks if the recovery holds. Catalyst group is event-dependent on Q2 FY27 earnings (~2–3 Sep). Net: no entry edge today — this is a watch, not a buy.

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

Stop-Loss — not LIVE

⛔ Two daily closes below C$85 (below the 52-week base)

Thesis Invalidation — not LIVE

⛔ Full-year guidance cut OR organic revenue growth falls below the software-sector median
⛔ WiseTech / project44 take material forwarder/visibility share (switching-cost moat breaks)
⛔ A hard gate fires (distress / dilution)

Profit-Target — not LIVE

⛔ Price into ~C$130 (analyst target) with RSI > 70 and no quality improvement to justify it

Forecast: No exit trigger is live. Stop (C$85) is ~18% below and unlikely in 4–6 weeks absent an earnings shock or a broad tech sell-off. Profit-target (~C$130) is ~25% away — not near. For a non-holder this is simply a watch.

Imagine you act at the current price of C$103.59 · as of 20 Jul 2026

What if you bought now?

You are risking ~18% (to the C$85 stop) to gain ~8% base / ~35% bull.

Buying now means paying a premium multiple (~36× trailing) that the rate-and-growth-warranted anchor puts at ~24× — you are above intrinsic fair value with no entry group met (Fundamental fails on price, Technical unconfirmed). What you gain immediately: a genuine quality compounder (Rule of 40 = 50, net cash, 35% FCF margins), a ~4.2% FCF yield working for you, embedded tariff/M&A optionality, and the base path to ~C$112. What you risk: the C$82 bear (−21%) if the multiple compresses, and path risk into September earnings. Read: waiting for a pullback into C$85–90 or a confirmed reclaim of C$110 materially improves the deal — acting now is paying up for quality with no margin of safety.

What if you sold now?

Not held here — and no mechanical reason to be short or to force a sale.

If you did own it: selling now would give up the base-case ~+8% to C$112 and the tariff/M&A optionality, and you'd be selling a best-in-class compounder below most Street targets (~C$130). What selling protects: the ~21% drawdown to C$82 if the growth-multiple de-rates. No exit rule is live (stop C$85 far below, no thesis break, not at the profit target). Read: this is a hold/watch zone, not a sell — the only action the rules support is waiting for a better entry, not exiting.

13

Position Sizing Context

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

Position sizing not computed — no allocation or portfolio role was specified. Context: beta 0.19 (about a fifth of the market's volatility — unusually defensive for tech), daily ATR ~3.8%, 52-week drawdown ~43% peak-to-trough. The §12 Conviction Ladder reads Wait (0 of 3 entry paths met), so the guidance is to watch the C$85–90 support / a confirmed C$110 reclaim rather than size a position here.

14

Calibration Snapshot

Machine-readable snapshot of every score, level and signal, saved alongside the HTML so the next run can compute deltas.
{
  "ticker": "DSG.TO",
  "exchange": "TSX",
  "exchange_ticker": "TSX:DSG",
  "isin": "CA2499061083",
  "api_ticker": "DSG.TO",
  "finder_ticker": "DSG",
  "finder_exchange": "\ud83c\udde8\ud83c\udde6 TSX \u00b7 \ud83c\uddfa\ud83c\uddf8 NASDAQ",
  "date": "2026-07-20",
  "version": "v6",
  "analysis_status": "on-going",
  "company": "The Descartes Systems Group Inc.",
  "currency": "CAD",
  "user_context": {
    "horizon": null,
    "allocation_pct": null,
    "portfolio_role": null
  },
  "price_at_rating": 103.59,
  "signal_short": "HOLD",
  "signal_medium": "HOLD",
  "signal_long": "HOLD",
  "primary_signal": "HOLD",
  "quality_score": 78,
  "lifecycle_stage": "growth",
  "quality_detail": {
    "industry_benchmark_name": "Rule of 40 (SaaS)",
    "industry_benchmark_value": 50,
    "industry_benchmark_score": 80,
    "moat_score": 72,
    "roic_percentile_vs_peers": 62,
    "capital_allocation": 80,
    "management_skin_in_game": 56
  },
  "valuation_score": 38,
  "valuation_detail": {
    "fcf_yield": 4.2,
    "ev_ebitda": 19.0,
    "ev_revenue": 8.1,
    "p_s": 8.4,
    "implied_growth_rate": 16.0,
    "consensus_growth_rate": 13.0,
    "historical_valuation_decile": 4,
    "warranted_multiple": 24,
    "actual_multiple": 36,
    "val_multiple_basis": "clean trailing P/E (CAD-consistent)",
    "discount_rate_r": 9.0,
    "risk_free_10y": 4.55,
    "g_near": 10.5,
    "g_term": 3,
    "warranted_ratio": 1.5,
    "val_band": "expensive"
  },
  "timing_score": 54,
  "timing_detail": {
    "mtf_confluence": 45,
    "risk_reward_score": 56,
    "relative_strength_vs_spy": -16.0,
    "relative_strength_vs_sector": -11.0,
    "catalyst_clustering_score": 75,
    "dynamic_macro_weight": 0.1
  },
  "driver_score": 60,
  "driver_label": "Neutral (two-sided trade/tariff)",
  "driver_amplifies": false,
  "driver_commodity_trend": "n/a \u2014 not a commodity-leveraged name",
  "economic_alignment_stance": "Neutral",
  "economic_alignment_conviction": 52,
  "economic_alignment_pressure": "Neutral",
  "economic_alignment_source": "sector-map",
  "macro_report_date": "2026-07-20",
  "nonop_pct_of_net_income": 1.5,
  "clean_pe": 36.0,
  "clean_peg": 1.6,
  "competitive_share_trajectory": "stable",
  "competitive_threat_level": "moderate",
  "overall_confidence": 62,
  "fair_value_est": 90.0,
  "stop_loss": 85.0,
  "target_price": 112.0,
  "scenario_base_target": 112,
  "scenario_bull_target": 140,
  "scenario_bear_target": 82,
  "entry_groups_met": 0,
  "entry_conviction": "Wait",
  "exit_groups_live": 0,
  "exit_action": "Hold",
  "hard_gate_state": "caution",
  "gates_triggered": [],
  "gates_caution": [
    "Valuation Ceiling"
  ],
  "do_not_buy_triggers": [],
  "analyst_consensus_target": 130.0,
  "analyst_target_high": 132.0,
  "analyst_target_low": 118.0,
  "analyst_target_upside_pct": 25.5,
  "analyst_grades_consensus": "Buy",
  "analyst_bullish_pct": 93,
  "analyst_coverage_count": 15,
  "fmp_rating": "A-",
  "fmp_overall_score": 4,
  "recent_upgrades_30d": 0,
  "recent_downgrades_30d": 0,
  "user_horizon": null,
  "user_allocation_pct": null,
  "portfolio_role": null,
  "next_update_date": "2026-08-03",
  "next_update_basis": "default +14d (next earnings ~2026-09-02 beyond window)"
}

HOLD/HOLD/HOLD carried from 3 Jul. A high-quality, net-cash, elite-margin logistics-SaaS compounder (Quality 78, Rule of 40 = 50) held back by price: clean trailing P/E ~36× is ~1.50× the rate-and-growth-warranted ~24× and above the 33× IT guardrail, so the Valuation Ceiling gate caps the signal at HOLD and blocks STRONG-BUY amplification. Economic alignment softened to Neutral under the 20 Jul Stagflation-lite macro (XLK U/N/O; two-sided tariff exposure). Entry conviction Wait — great business, no valuation entry edge.

15

Data Sources & Methodology

Audit trail of every data source: fully available (✓), fallback (⚠), or failed (✗), plus provenance-based confidence haircuts.
Data Source Status
get_yahoo_quote / get_company_profile Price C$103.59, CAD confirmed, ISIN CA2499061083, sector Info Tech
get_income_statement (6q) USD-reported; TTM rev US$754M, NI US$176M, EBITDA US$321M
get_financial_ratios EV/EBITDA 26.7× / EV/Rev 11.3× / P/S 11.8× are CAD-value ÷ USD-fundamental (mixed) — corrected to ~19× / ~8.1× / ~8.4×
get_multi_timeframe_analysis Monthly/weekly downtrend, daily recovering above rising 50-DMA
get_grades_consensus / get_stock_grades 14 Buy / 1 Hold (93% bullish); Rothschild upgrade Apr; no 30-day downgrades
get_price_target_consensus / get_analyst_estimates Degraded to single-analyst (target C$131.8) and an erroneous fwd-P/E 22.7×; consensus ~C$130 triangulated from grades + broker notes; Valuation confidence haircut
get_ratings_snapshot FMP health A- (4/5); P/E & P/B sub-scores the only drags
get_economic_series (DGS10, DEXCAUS) 10Y 4.55%; USD/CAD 1.40 — used for the warranted multiple + currency basis
MacroDriver-state-20260720 Stagflation-lite regime; XLK U/N/O; AI tail armed (not applicable to DSG)
Impact on scores: Core price, fundamentals, technicals and macro are all solid. The two partials — the currency-mixed FMP multiples and the degraded analyst-target feed — were corrected/triangulated in §4, and Valuation confidence is held at 60% to reflect the thinner target coverage. Signal (HOLD) rests on the warranted-multiple anchor + Valuation Ceiling, which use clean, verified inputs.
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.