Innodata Inc. [INOD] · Equity Underwriting Memo

Valuation

Innodata Inc [INOD] — Valuation

As of 2026-07-29 · spot $57.56 (2026-07-28 SIP close) · framework v1.5.1

Two outputs are produced, per references/valuation.md. Reporting only one is a defect: they answer different questions over different horizons.

Output Horizon Result
12-month target 12m $88 base, +52.8% to spot (bear $64 / bull $112)
Implied-path test 5y PASS — requires 20.6%–50.5% CAGR vs 70.3% demonstrated; margin +49.7pp to +19.8pp

1. Inputs, verified

Input Value Source / check
Spot $57.56 Alpaca SIP close 2026-07-28 (screen used $57.54)
Shares, basic outstanding 32.655m 10-Q cover 2026-04-30; 35,839 issued − 3,184 treasury ✅
Shares, diluted WASO 35.572m Q1 2026 10-Q. Used as primary. 8.9% above basic
Market cap $2,047m diluted / $1,880m basic
Net cash $114.83m Cash $117.366m − Microsoft licence financing $2.536m. Revolver undrawn. Excl. $9.314m pension accrual; incl. it, $105.5m
EV $1,933m diluted / $1,765m basic
TTM revenue $283.415m Four filed quarters, verified. Screen exact ✅
TTM operating income $48.501m (17.1%) 8,911 + 11,759 + 10,931 + 16,900. Screen used FY2025's 15.8% margin against TTM revenue — a period mismatch
EV/TTM Sales 6.82x Screen: 6.23x (basic shares)
EV/TTM EBIT 39.8x Screen: 39.3x
Demonstrated revenue CAGR 70.3% FY2023 $86.775m → FY2025 $251.663m, 2y. Reproduced exactly
WACC 10.0% Framework default. Not tuned

2. Implied-path test — the Valuation Criteria (primary long-horizon output)

Terminal value is 100% of EV by construction in reverse_dcf.py, which is far above the 60% threshold, so the reverse DCF is mandatory as the primary output and the forward DCF is not run as a verdict instrument.

Solved for: revenue CAGR. Held fixed and named explicitly: terminal EBIT margin 15.8%, exit multiple as tabulated, horizon 5 years, WACC 10.0%, EV $1,933m (diluted shares, verified net cash).

2.1 Sensitivity over the exit multiple — the highest-variance parameter

Per criteria.md: sensitivity runs on the exit multiple, never on scenario probabilities.

Exit multiple (EBIT) Provenance Required CAGR Margin: demonstrated − required Result
27.2x Screen's universe-wide growth-matched set (n=72) 20.6% +49.7pp PASS
20.0x Interpolation 28.3% +42.0pp PASS
15.0x Interpolation 35.9% +34.4pp PASS
12.0x Interpolation 42.1% +28.2pp PASS
9.0x Services comp median (EPAM/G/CTSH) 50.5% +19.8pp PASS
6.8x Harshest services comp (CTSH) 59.2% +11.1pp PASS

The test passes at every exit multiple in the tested range, including the harshest services anchor. That is the finding, and it is more robust than the screen's single point estimate.

Cross-checks, solving for the other parameters instead:

Solve for Holding Result
Exit multiple CAGR = 70.3% (demonstrated) 4.9x EBIT — the price is consistent with a distressed services multiple if growth simply continues
Exit multiple CAGR = 40% (2026 guide) 12.9x EBIT — inside the plausible services range
Exit multiple CAGR = 25% 22.8x EBIT
Terminal margin 9.0x exit, CAGR 40% 22.7% vs mature services peers at 14.9% (+7.8pp — this leg is not comfortable)

2.2 Implied compression from today's trading multiple, stated as a number

Today: 39.8x EV/TTM EBIT. Exit anchors: 27.2x (screen) → 31.7% compression; 9.0x (services median) → 77.4% compression. Both are compressions, not expansions — the price does not require multiple expansion under any anchor tested.

2.3 Anchoring the exit multiple — growth-matched, and where it becomes UNIDENTIFIED

The framework permits an exit multiple only from a comparator set whose growth brackets the subject's growth at the exit year. Comparator set built directly from XBRL + live prices, 2026-07-28:

Peer TTM revenue growth TTM EBIT margin EV/Sales EV/EBIT
EPAM Systems +17.7% 8.9% 0.80x 9.0x
Genpact +8.6% 14.9% 1.28x 8.6x
Cognizant +8.4% 15.9% 1.08x 6.8x
(Accenture — share-count tag stale to 2010-03-19; excluded, per the brief's stale-data warning) +6.7% 14.5%
(Globant — revenue tag returned $64m, obviously broken; excluded)
(Endava, TaskUs — no usable current share count; excluded)

Set growth spans 8.4% – 17.7%. Median EV/EBIT 9.0x. Median EBIT margin 14.9%.

The declaration this requires:

The screen's 27.2x is the software-like assumption the brief was hunting for. The brief predicted it would be in the terminal margin. It is not: 15.8% is squarely a services margin (peer median 14.9%) and INOD already earns 17.1% TTM / 18.8% in Q1. The unjustified leg is the multiple. Correcting it, plus the diluted share count, takes the ranked margin from the screen's +51.8pp to +19.8pp — still PASS, but roughly one quarter of the headline. The screen's ranking of this name is overstated by ~32pp.

2.4 The honest caveat on "demonstrated ≥ required"

The mechanical test passes. It should not be read as costlessly as that.

The 50.5% required CAGR at the services anchor implies $283m → $2.19bn of revenue by 2031. The 70.3% demonstrated CAGR was earned taking revenue from $87m → $252m — a 3.3x smaller base — and 56% of the current revenue base rests on one at-will counterparty. Sustaining near-demonstrated growth for five more years on a base 3.3x larger is a materially harder task than the one already performed, even though the framework's arithmetic scores them as the same number.

Grade: PASS. Recorded with this caveat rather than downgraded, because the framework's test is demonstrated − required and inventing a discretionary haircut here would be exactly the silent double-counting of conservatism that criteria.md prohibits (the NTRA 5.0x-vs-7.0x-anchor failure). The caveat is disclosed; the grade is not adjusted.


3. The 12-month target

Built per valuation.md: near-term revenue base + named product-cycle events + the name's own multiple history with the percentile stated. Not a DCF, and not a peer median projected forward.

3.1 The multiple anchor — INOD's own history, regime-adjusted

Daily EV/TTM-Sales series constructed from 894 SIP bars, filed quarterly revenue stepped at each filing date, and quarter-end share/cash balances (basic-share convention throughout, so the current reading is compared like-for-like).

Window n min p10 p25 median p75 p90 max current percentile
Full history 2023-02-24 → 2026-07-28 858 1.70 2.37 3.39 5.14 7.39 9.27 13.63 64
Post-inflection, 2024-08-09 → 2026-07-28 492 3.60 4.81 5.48 7.07 8.34 10.35 13.63 37
Trailing 252d 252 4.14 5.13 5.59 7.17 9.41 11.07 13.63 37
Trailing 126d 126 4.14 4.89 5.40 6.08 9.02 11.14 13.63 52

Current EV/TTM Sales = 6.26x on the basic-share convention (6.82x diluted).

Regime-change handling, declared: the full history spans a clear regime break. Calendar-year bands — 2023 median 2.84x, 2024 4.08x, 2025 7.34x, 2026 6.68x — show the re-rating coincided with the Q3 2024 revenue inflection ($32.6m → $52.2m). The pre-2024-08 period is excluded as a different regime. The post-inflection window still carries 492 trading days spanning 3.6x–13.6x, which is ample dispersion, so the own-multiple anchor is IDENTIFIED, not unidentified. Current percentile: 37th.

3.2 The near-term revenue base

No consensus available (Alpha Vantage quota exhausted — Consensus Criteria INDETERMINATE, blocks nothing). The base is therefore built from disclosed company guidance plus the disclosed programme schedule, and is labelled as such — it is not a Street number.

NTM window = Q3 2026 → Q2 2027:

Case Sequential assumption NTM revenue
Bear 0% q/q from Q1 2026 (guidance taken literally) $360m
Base ~2.6% q/q $390m
Bull ~4% q/q $425m

For reference, actual sequential growth in Q1 2026 was +24.5%. The base case assumes it decelerates by an order of magnitude.

3.3 Named product-cycle events inside 12 months

Each appears dated in INOD_Catalyst_Calendar.md: 1. Recognition of the residual ~$36m of the named $51m Big Tech programme, across Q2–Q4 2026. 2. Q2 2026 results — the first test of whether the ≥40% guide is conservative. Date not announced. 3. Evaluation and Observability Platform conversion — 15 companies in evaluation, two hyperscaler channel discussions. No dates disclosed; upside optionality only, zero revenue modelled. 4. FY2027 guidance, at the FY2026 results (historically late February).

3.4 The target

Target EV = NTM revenue × own-history multiple; equity = EV + $114.8m net cash. Priced on basic shares, to stay on the same convention as the multiple series (the diluted-consistent calculation gives $87.65 — within $0.30, so the choice is not load-bearing).

Case NTM rev Multiple Own-history percentile Target EV Target price vs spot
Downside stress $360m 4.81x p10 $1,732m $56.54 −1.8%
Bear $360m 5.48x p25 $1,973m $63.93 +11.1%
BASE $390m 7.07x median (p50) $2,757m $88 +52.8%
Bull $425m 8.34x p75 $3,545m $112.06 +94.7%

12-month target: $88, +52.8% above spot.

On diluted shares the same three cases give $58.68 / $80.74 / $102.87.

Why the target is above spot, and why that is expected rather than a red flag. The name sits at the 37th percentile of its own post-inflection multiple range while its most recent quarter grew 54% year over year with operating margin expanding 4.6pp and management raised then reaffirmed guidance. The target requires only mean reversion to the median of its own 492-day range on a revenue base the company's own guidance already implies. Calibration item B16 records 16 of 16 house targets landing below spot at a median 46.1% below Street; a process whose every target sits below spot is expressing a market view, not valuing companies.

Sanity band — not performed. valuation.md requires reporting the gap to an external professional target where one exists. Alpha Vantage's quota was exhausted and no external target was obtained. This check is recorded as a gap, not silently skipped. It does not block: Consensus Criteria is INDETERMINATE.


4. Peer Spread Criteria

INOD EPAM (named peer, same end-market)
TTM revenue growth +54% (Q1 y/y), +48% FY25 +17.7%
TTM EBIT margin 17.1% 8.9%
EV/Sales 6.82x 0.80x
EV/EBIT 39.8x 9.0x

INOD trades at 8.5x EPAM's EV/Sales on ~3x the growth and ~2x the margin. The spread is not obviously wrong on fundamentals; it is entirely a judgment about the durability of at-will, single-counterparty revenue. Own-history percentile: 37th — INOD is cheap against itself and expensive against services.


5. What could not be established