ExlService Holdings [EXLS]
As of 2026-07-30 · spot $34.71 · Company state: A (mature-stable)
| Shares outstanding | 152,782,931 (dei cover, 24 Apr 2026) |
| Market capitalisation | $5,303.1m |
| Cash + short-term investments (30 Jun 2026) | $283.824m |
| Total borrowings (all current) | $381.155m |
| Net debt | $97.331m (1.8% of EV) |
| Enterprise value (lease-exclusive) | $5,400.4m |
| Enterprise value (lease-inclusive, +$101.202m) | $5,501.6m |
| TTM revenue (to 30 Jun 2026) | $2,237.314m |
| TTM operating income (GAAP) | $333.318m |
| TTM operating margin | 14.90% |
| Gross margin | 38.0% |
| TTM free cash flow | $275.036m (12.29% margin) |
| TTM SBC | $90.622m (4.05% of revenue) |
| EV / Sales | 2.41x |
| EV / EBIT | 16.20x |
| EV / FCF | 19.6x |
TTM FCF margin is positive, so the interim-FCF correction moves conservatively;
--fcf-margin 0.1229 was passed explicitly rather than omitted. Q1 free cash flow is negative in
both 2025 and 2026 (−$9.7m, −$11.2m) on a recurring annual bonus-payment pattern; the annual sign
is unambiguously positive and no forward sign inversion of the GOOGL type applies.
Basis: EXLS's own demonstrated operating margin. Set flat at the FY2025 actual of 15.03% and the window peak, against a TTM of 14.90%.
| FY2021 | FY2022 | FY2023 | FY2024 | FY2025 | TTM Jun-26 | |
|---|---|---|---|---|---|---|
| Operating margin | 13.89% | 13.61% | 14.64% | 14.34% | 15.03% | 14.90% |
+1.14pp of range over five years while revenue nearly doubled. That is a services business with a stable cost structure, and it is the reason the terminal is set flat rather than expanding.
steady_state_check said soThis memo first tested a terminal margin of 15.5%, on a mix-shift argument (Data-and-AI-led at 61% of revenue and 46.9% gross margin in Healthcare & Life Sciences). The check returned:
• TERMINAL_ABOVE_EVERY_OBSERVED_YEAR: 15.5% exceeds the window peak of 15.0%. Defensible only with a
named mechanism — operating leverage on a fixed cost base is a reason; 'it has been rising' is not.
The flag was right and the assumption was revised, not defended. The mechanism failed its own evidence test: Q2 2026 revenue grew 15.6% and GAAP operating margin fell 1.1pp (15.8% → 14.7%), while adjusted margin was flat (+0.1pp). A mix shift that does not reach the operating line in the quarter it is largest is not a margin mechanism. Terminal set to 15.0%.
| Line | $m | % rev |
|---|---|---|
| Gross profit | 801.076 | 38.37% |
| less General & administrative | 255.308 | 12.23% |
| less Selling & marketing | 172.934 | 8.28% |
| less Depreciation & amortisation | 59.248 | 2.84% |
| less other, net | (0.164) | (0.01%) |
| = Operating income | 313.750 | 15.03% |
Ties to the filed OperatingIncomeLoss of $313,750,000 and OperatingExpenses of $487,326,000.
Constraint satisfied: m_EBIT,T 15.0% ≤ m_gross,T 38.4%.
Note the low gross margin. Per the brief's low-margin rule, EV/EBIT becomes an inadmissible instrument at 1–3% operating margins; EXLS runs 15%, comfortably clear of that trigger, and the gross margin of 38.4% is far above the <15% level that forced the MCK/FN switch to EV/gross profit. EV/EBIT is admissible here. Stated explicitly because it was checked.
steady_state_check.py --ticker EXLS --terminal-margin 0.15 --exit-multiple 16.20 --wacc 0.095MARGIN RAMP
2020-12-31 margin 11.5%
latest margin 15.0%
moved +3.5pp latest is window peak: True
terminal assumed 15.0% (-0.0pp vs latest, -0.0pp vs peak)
RETURNS AND THE WARRANTED MULTIPLE
ROIC measured 18.0%
warranted multiple at steady ROIC 10.1x
SCALING CONTAMINATION 1.00x
terminal reinvestment rate implied by g/ROIC 16.7%
exit multiple used vs steady-state warranted 1.60x
FINDINGS
• EXIT_MULTIPLE_UNWARRANTED_AT_STEADY_STATE: 16.2x is 1.6x the 10.1x warranted at a 18%
steady-state ROIC.
What it flagged after the revision:
TERMINAL_ABOVE_EVERY_OBSERVED_YEAR cleared once the terminal was moved 15.5% → 15.0%.MARGIN_STILL_RAMPING flag, despite the latest being the window peak — because the move is
only +3.5pp over five years and the last two prints go down. A flat terminal at a plateau is what
the check is looking for.EXIT_MULTIPLE_UNWARRANTED_AT_STEADY_STATE remains, at 1.60x — the smallest gap of the three
names in this cluster (PRGS 2.20x, PTC 1.66x, EXLS 1.60x), driven by the highest measured ROIC
(18.0% vs 14.4% and 7.3%). EXLS is the only one of the three where the ROIC is comfortably above
WACC and the multiple gap is correspondingly smallest.reverse_dcf.py --spot 34.71 --shares 152.782931 --net-cash -97.331 --revenue 2237.314
--terminal-margin 0.15 --exit-multiple 16.20 --fcf-margin 0.1229 --wacc 0.095
THE MARKET REQUIRES: revenue CAGR of 4.1% Held fixed: terminal margin 15.0%, exit multiple 16.20x EV/EBIT, WACC 9.5%, 5 years.
| Demonstrated basis | Value | Margin (demonstrated − required) |
|---|---|---|
Screen's revenue_cagr_demonstrated |
+13.9% | +9.8pp |
| Company-guided FY2026 organic growth | +13.5% (midpoint of 13–14%) | +9.4pp |
| FY2026 total guided growth (incl. iMerit) | +15.0% | +10.9pp |
| Latest quarter YoY | +15.6% | +11.5pp |
| Data-and-AI-led (61% of revenue) | +30.1% | +26.0pp |
| Digital operations (39% of revenue) | −1.5% | −5.6pp |
Unlike PRGS and PTC, the bases do not disagree in sign. Every consolidated measure — screened, guided, organic, reported, latest-quarter — sits between +13.5% and +15.6% against a required 4.1%. The margin is +9.4pp on the organic basis, and the screen's +8.9pp was, for once, roughly right.
Verdict: PASS. Not "pass with argument" — the required path sits materially below what the business has already demonstrated and below what the company has guided organically, with the acquisition contribution separately quantified at ~1.3 of 15 percentage points.
| Exit EV/EBIT | Percentile of window B | Required revenue CAGR | vs organic +13.5% |
|---|---|---|---|
| 10.1x (ROIC-warranted) | below the window low | ~11.5% (extrapolated) | +2.0pp — still passes |
| 12.0x | below window low (15.0x) | +9.5% | +4.0pp |
| 14.0x | below window low | +6.7% | +6.8pp |
| 16.20x (current, held flat) | 18.4th | +4.1% | +9.4pp |
| 18.9x | 20th | +1.3% | +12.2pp |
| 21.6x | 50th | −1.0% | +14.5pp |
| 28.0x | ~85th | −5.5% | +19.0pp |
There is no flip point inside any plausible range. Even at the ROIC-warranted 10.1x — below the lowest multiple EXLS has traded at in the entire post-2024 window (12.1x) — the required ~11.5% still sits below the demonstrated 13.5%. This is the most robust of the three valuation tests in this cluster by a wide margin, and it is robust for the right reason: the required path is low because the demonstrated path is genuinely high, not because the exit multiple is doing the work.
Terminal value exceeds 60% of EV, so the reverse DCF is the primary output per criteria.md.
Daily series from Alpaca split-adjusted closes, 2020-07-27 → 2026-07-29, n = 1,509; current share
count and net debt held fixed; TTM revenue lagged 60 days to filing availability. The 5-for-1 split
of 2023-08-02 is handled by the split-adjusted feed — confirmed by querying SPLITS explicitly.
| Series | Window A (2020-07→2023-12) | Window B (2024-01→2026-07) | Share of B inside A's range |
|---|---|---|---|
| EV/Sales | [2.00, 4.66], med 3.46 | [1.83, 4.53], med 3.23 | 97.2% |
| EV/EBIT | [17.5, 35.0], med 27.0 | [12.1, 32.5], med 21.6 | 81.1% |
97.2% and 81.1% — both windows describe the same regime. Contrast ZS at 12.7% and PRGS's EV/Sales at 32.2%. EXLS has not re-rated and its earnings have not step-changed; the long series is usable, and the post-2024 window is used for the anchor as the more conservative of the two.
| Current | Percentile, window B | Percentile, full 6y | |
|---|---|---|---|
| EV/EBIT | 16.20x | 18.4th | 7.9th |
| EV/Sales | 2.41x | 18.0th | 11.8th |
Window-B EV/EBIT deciles: [15.0, 18.9, 20.1, 20.5, 21.6, 22.9, 24.3, 26.7, 28.4] — a smooth, unimodal distribution with no denominator discontinuity. This is what a valid multiple history looks like, and it is exactly what PTC's is not.
FY2026 guidance: $2.390–2.415bn, midpoint $2.4025bn. Carrying forward at ~12% (organic guided 13–14%, moderated for the law of large numbers and the −1.5% Digital operations drag) gives a rolling 12-month revenue one year out of approximately $2,690m. At the 15.0% terminal margin — which is also the current demonstrated margin, so no expansion is assumed — forward EBIT is $403.5m.
Anchor: EV/EBIT 16.20x, the current multiple held flat, at the 18.4th percentile of the regime-valid 2024–26 window. No re-rating assumed.
| EV/EBIT anchor | Percentile, window B | EV | less net debt | Equity | Per share | vs $34.71 |
|---|---|---|---|---|---|---|
| 12.1x (window-B low) | 0th | $4,882m | $97m | $4,785m | $31.32 | −9.8% |
| 15.0x | 10th | $6,053m | $97m | $5,955m | $38.98 | +12.3% |
| 16.20x — BASE, held flat | 18.4th | $6,537m | $97m | $6,440m | $42.15 | +21.4% |
| 18.9x | 20th | $7,626m | $97m | $7,529m | $49.28 | +42.0% |
| 21.6x | 50th | $8,716m | $97m | $8,618m | $56.41 | +62.5% |
12-month target: $42 (+21.4%), at 16.20x EV/EBIT = the 18.4th percentile of the 2024–26 own-history window, held flat.
Holding EV/Sales flat at the current 2.41x (18.0th percentile of the same window) on forward revenue of $2,690m: EV $6,483m, less $97m of net debt, over 152.783m shares = $41.80.
The two instruments agree to within 0.8% ($42.15 vs $41.80) because no margin expansion is assumed in either. That agreement is the check that the target is not being manufactured by the multiple.
| Criteria | Type | Verdict | Basis |
|---|---|---|---|
| Quality | BINDING | PASS | COMPOUNDER. ROIC 18.0% vs WACC ~9.5% — the highest measured ROIC of the three names — with an evidenced redeployment mechanism: capex ~16% of NOPAT matching the g/ROIC-implied 16.7%, plus small named tuck-ins (ITI Data, iMerit). Operating margin stable 13.6–15.0% over five years, gross margin 38.0% ± 1pp, positive FCF every year. Accruals: TTM FCF $275m against TTM net income ~$262m — a ~1.05x conversion, healthy. |
| Valuation | BINDING | PASS | Required 4.1% vs company-guided organic +13.5% = +9.4pp. No flip point exists inside any plausible multiple range, including below the window low. The screened +8.9pp survives verification. |
| Accounting quality — organic vs acquired | MEASURED | PASS | Organic growth is disclosed and guided separately (+13–14%), with the acquisition contribution quantified in dollars ($28–32m from iMerit, ~1.3 of 15pp). The cleanest disclosure of the three names in this cluster. |
| Operating leverage | MEASURED | FAIL — and it is priced accordingly | 68% of FY2025 growth came from headcount (+9.2% vs +13.6% revenue); revenue per employee +4.0%, roughly wage inflation. GAAP operating margin fell 1.1pp in Q2 2026 on +15.6% revenue. The terminal margin is set flat because of this, so the failure is absorbed into the model rather than left as an unpriced risk. |
| Receivables / DSO | MEASURED | FLAG | Same-quarter DSO 61.1d (Q2 2025) → 66.5d (Q2 2026), +5.4 days; receivables +25.7% against revenue +15.6%. Direction is wrong. Magnitude is not disqualifying. |
| Factoring check | MEASURED | CLEAN | Zero matches for factoring / sale of receivables / securitisation / supply-chain finance in the FY2025 10-K or the Q2 2026 10-Q. The DSO deterioration is therefore real and unmasked — which is a more trustworthy signal than a flattering number would be. |
| Client concentration | MEASURED | PASS | Top-10 at 34.0% (FY2025), 33.2% (FY2024), 34.0% (FY2023) — high for software, normal for BPO, and stable. No single client above 10%. |
| AI/analytics revenue share | MEASURED | DISCLOSED; margin INDETERMINATE | Data-and-AI-led $362.558m = 61.0% of Q2 2026 revenue, +30.1%; Digital operations −1.5%. Margin by service type not disclosed. Gross margin by industry segment is disclosed and is the nearest proxy (Healthcare & Life Sciences 46.9% vs ~35% elsewhere). |
| Retired or redefined metric | MEASURED | PRESENTATION CHANGE | Service-type split (Data-and-AI-led / Digital operations) is a newer presentation than the historical structure; both are currently given, so logged as a change rather than a retirement. |
| Mention-frequency split | MEASURED | INDETERMINATE | EARNINGS_CALL_TRANSCRIPT not retrieved within the time-box. Missing input is INDETERMINATE, never FAIL. |
| Steady-state test | MEASURED | 1 flag | EXIT_MULTIPLE_UNWARRANTED_AT_STEADY_STATE at 1.60x — the smallest of the three names. TERMINAL_ABOVE_EVERY_OBSERVED_YEAR fired at a 15.5% terminal and was cleared by revising the assumption to 15.0%, not by arguing with the check. |