Intuitive Surgical [ISRG]
ISRG_Underwriting_Model_2026-07-27.xlsx — 8 tabs, live formulas throughout | revised under investment-memo v1.4.0
v1.4.0 changes — read this first
1 · A deliberate, disclosed inconsistency has been resolved — and its stated impact was itself wrong. The prior build ran
Assumptions!C26(FY2027 revenue growth) at 14.5% while Task 5's the dissolved variant-vs-consensus test (old Gate 2) used the revised house build of +11.5% ($13,270m). That was not an oversight — the previous version of this very document flagged it explicitly as "a deliberate, disclosed inconsistency," on the reasonable argument that retaining the higher number meant "the DCF cannot be accused of being tuned to fit the decision." Credit where due: it was disclosed, and the direction was called correctly. But two things were wrong with it. First, the estimated impact was stated as "lowers the base value from $334 to roughly $310–315" — the actual recompute is $326.53, so the disclosed estimate overstated the effect by ~$13–16. Second, and more importantly, the practice leaves the memo's published headline DCF number corresponding to no forecast the memo actually holds, andIncome Statement!H19computing +2.9% versus consensus while every narrative section claimed +0.2%. The better discipline is to run the DCF on the house forecast and then state plainly that it moves against the conclusion — which is more honest than retaining a number you do not believe. Resolved in v1.4.0: C26 set to 11.5%. FY2027E revenue now computes to $13,268m, +0.22% vs consensus — what the dissolved variant-vs-consensus test (old Gate 2) always claimed — and the DCF base is $326.53, a more negative reading than the $334.38 it replaces. The Bear and Bull DCF runs used their own FY2027 growth rates and are unaffected.2 · New tab:
TAM & Vectors— bottom-up TAM for all four pipeline vectors (units × penetration × price × attach), the penetration-path sensitivity, the required implied-penetration statement, the pipeline cross-check, and EV/TAM with its denominator's elasticity. Every input is colour-coded orange = assumption/estimate, blue = disclosed.3 ·
Scenariosrevised — probabilities 30/45/25 → 25/48/27 (sole justification: the XiR/ASC evidence de-risks one named bear driver — seeScenarios!F14); Base DCF value 334.38 → 326.53; base target midpoint $367 → $360 and range $340–395 → $330–390, forced mechanically by the DCF correction; the entry-price solver ladder re-centred on the new $310 conversion trigger; and a new the dissolved duration-variant test (old Gate 2B) four-leg evidence table at rows 60–67.4 · The workbook was rebuilt. An openpyxl save aborted mid-write and truncated the zip archive. Because openpyxl had written all strings inline, every cell value and formula was recoverable from the surviving sheet XML and the workbook was reconstructed with formatting re-applied. Two bugs introduced during that rebuild were caught by the Excel read-back and fixed: four column-A labels beginning with
=(e.g."= Addressable US ASC systems") were being written as invalid formulas, which caused Excel to reject the file silently; and the international-value-tier TAM formula referencedB12(I&A per procedure) where it neededB11(procedures per system), overstating that leg by 3x. Both were found only by opening the file in Excel and reading back computed cells — which is the entire reason that step is mandatory.
Every hardcoded input is shaded yellow. Every other cell is a live formula. The workbook was built with openpyxl, then opened in Microsoft Excel via AppleScript, recalculated, and read back cell by cell — openpyxl writes formula strings without evaluating them, so a wrong reference fails silently. Verification results below.
| Tab | Contents |
|---|---|
| Assumptions | Market data, WACC build, base-case operating drivers FY2026–35, consensus estimates |
| Income Statement | FY2021–25 actuals from EDGAR XBRL; FY2026–35 projections driven off Assumptions |
| Free Cash Flow | Unlevered FCF build: NOPAT + D&A − capex − ΔNWC |
| DCF | Ten-year mid-year-convention DCF, terminal value, equity bridge |
| Scenarios | Bull/Base/Bear, entry-price solver, base-rate check. (v1.6.0: the scenario-weighted E[R]-vs-cash-hurdle output and the variant-vs-consensus test on this tab are retired; the tab is retained for its scenario inputs.) |
| Comps | Eight medtech peers, FY2025 actuals from EDGAR, live prices from Alpaca |
| TAM & Vectors | NEW (v1.4.0) — bottom-up TAM for Vectors A–D, penetration-path sensitivity, implied-penetration statement, pipeline cross-check, EV/TAM with elasticity |
| Placement Share | The tab that matters — installed-base roll-forward driven by share of new placements, plus the two-way share × market-growth sensitivity |
| Cell | Excel value | Independent check |
|---|---|---|
| Assumptions!B11 market cap | 127,613.27 | 357.16 × 357.3 = 127,613.27 ✓ |
| Assumptions!B22 WACC | 8.70% | 4.20% + 1.00 × 4.50% ✓ |
| Income Statement!G4 FY26E revenue | 11,900 | seeded input ✓ |
| Income Statement!H4 FY27E revenue | 13,268.50 | 11,900 × 1.115 ✓ — and +0.2% vs the $13,240m consensus, matching the the dissolved variant-vs-consensus test (old Gate 2) table for the first time |
| Income Statement!H19 house vs consensus | +0.22% | was +2.91% before the C26 correction ✓ |
| DCF!B18 value per share | 326.53 | was 334.38 on the superseded 14.5% ✓ |
| DCF!B12 terminal value share of EV | 67.4% | ✓ |
| Scenarios!B19 gross E[R] | −0.311% | 0.25×(−38.40%) + 0.48×(+0.80%) + 0.27×(+32.99%) ✓ |
| Scenarios!B21 net E[R] | −0.411% | less 10bp slippage ✓ |
| Scenarios!B23 vs cash hurdle | −5.11% | (v1.6.0: retired. The cash hurdle no longer exists. The Valuation Criteria is the implied-path test — required 26.0% vs 17.4% demonstrated, margin −8.6pp, or +0.7pp on ISRG's own terminal margin. See 03_Valuation_and_Factor_Scorecard.md §0.1.) |
| Scenarios!B36 E[R] at $310 | +14.00% at $312, +14.75% at $310 | conversion trigger confirmed ✓ |
| TAM!B9 addressable US ASC systems | 1,247 | ROUND(6,300 × 0.30 × 0.66) ✓ |
| TAM!B20 US ASC TAM ($m/yr) | 685.85 | 467.6 I&A + 124.7 service + 93.5 capital ✓ |
| TAM!B24 international value TAM ($m/yr) | 757.50 | (1,500×300×1,100 + 1,500×100k + 1,500×750k/10)/1e6 ✓ (caught and fixed — see note 4) |
| TAM!B25 combined Vector D TAM | 1,443.35 | ✓ |
| TAM!B47 incremental cardiac ($m/yr) | 429.00 | (160,000 − 17,000) × $3,000 ✓ |
| TAM!B63 implied Ion US penetration | 81.55% | 179,400 ÷ 220,000 ✓ |
| TAM!B78 revenue per procedure | 3,102.56 | $10,065m ÷ 3,244,100 ✓ |
| TAM!C85 implied procedures at 5.0x | 7,669,162 | ($118,970m ÷ 5.0) ÷ $3,102.56 ✓ |
| TAM!B100 pipeline share of required growth | 35.21% | 1,558,000 ÷ 4,425,062 ✓ |
| TAM!B107 EV / TAM | 4.26x | $118,970m ÷ $27,923m ✓ |
| Income Statement!P4 FY35E revenue | 28,245.43 | Python: 28,245.43 ✓ |
| Income Statement!P10 FY35E EBIT | 10,592.04 | Python: 10,592.04 ✓ |
| Free Cash Flow!B11 FY26E UFCF | 2,959.79 | Python: 2,959.79 ✓ |
| Free Cash Flow!K11 FY35E UFCF | 8,304.36 | Python: 8,304.36 ✓ |
| DCF!B9 sum of PV | 36,015.59 | Python: 36,015.59 ✓ |
| DCF!B10 terminal value | 165,288.62 | Python: 165,288.62 ✓ |
| DCF!B11 PV of terminal value | 74,827.68 | Python: 74,827.68 ✓ |
| DCF!B13 enterprise value | 110,843.27 | Python: 110,843.27 ✓ |
| (superseded) DCF!B18 on the old 14.5% spine | 334.38 | Python: 334.38 ✓ — retained here for audit trail only |
| Placement Share!C12 retirement rate | 5.2212% | (9,902 + 1,721 − 11,106) / 9,902 ✓ |
| Placement Share!B31 Base FY26 IB growth | 12.0% | matches the disclosed actual +12% ✓ |
Errors found and fixed during verification (the first pass found two; v1.4.0 found three more — all recorded, because a verification step that never catches anything is theatre):
1. The first Excel read returned WACC = 0.00% and market cap = 0 — the read was pointed at the wrong rows
(B18/B10 rather than B22/B11), not the formulas. Caught by dumping the sheet layout and re-reading.
2. A real modelling error: the fleet retirement rate was initially assumed at 3.5%, which produced FY2026
installed-base growth of 13.7% against a disclosed actual of 12.0%. Calibrating to the disclosed 2025
roll-forward gave 5.22%, which independently cross-checks to 5.31% annualised on H1 2026 and brings the model
to 12.0%. The assumption was replaced with an observation.
3. (v1.4.0) Excel silently refused to open the rebuilt workbook. Four column-A text labels beginning with
= — e.g. "= Addressable US ASC systems" — were written by openpyxl as invalid formulas. open returned
no AppleScript error and no workbook appeared. Relabelled. This was caught only because the read-back step
is mandatory; a script that trusted the save would have shipped an unopenable model.
4. (v1.4.0) A live formula bug on the new TAM tab. The international-value-tier TAM referenced B12 (I&A per
procedure, $1,250) where it needed B11 (procedures per system, 300), returning $2,325m instead of
$757.5m — a 3x overstatement. Caught by reading the computed cell back against a hand calculation. This is
exactly the failure mode the skill warns about: openpyxl wrote the formula string without complaint.
5. (v1.4.0) Workbook recovery. An openpyxl save aborted mid-write and truncated the zip archive
([Content_Types].xml and the workbook part were missing). Because openpyxl writes strings inline, every
cell value and formula was recoverable from the surviving sheet XML; the workbook was reconstructed and
formatting re-applied. No content was lost, and both bugs above were introduced and then caught during
that reconstruction.
| Driver | FY26E | FY27E | FY30E | FY35E |
|---|---|---|---|---|
| Revenue growth | 18.2% | 11.5%* | 11.0% | 6.5% |
| GAAP operating margin | 33.0% | 34.5% | 37.0% | 37.5% |
| D&A % revenue | 5.2% | 5.2% | 5.2% | 5.2% |
| Capex % revenue | 6.0% | 6.0% | 6.0% | 6.0% |
| Incremental NWC % Δrevenue | 9.0% | 9.0% | 9.0% | 9.0% |
* Changed in v1.4.0 from 14.5% to 11.5%. The prior build deliberately retained 14.5% on the DCF spine while
the dissolved variant-vs-consensus test (old Gate 2) and the scenario targets used 11.5%, and disclosed that inconsistency openly, arguing the higher number
kept the DCF from looking tuned to fit the decision. That argument has real merit and the disclosure was
honest — but it left the published headline DCF value describing a forecast the memo did not hold, and it left
Income Statement!H19 computing +2.9% versus consensus while every narrative section said +0.2%.
The whole spine now runs the house forecast. The result moves against the conclusion — the DCF base falls
from $334.38 to $326.53 — which is the point: a model tuned to fit a decision would not have been allowed to
do that. Note also that the prior build's own estimate of this effect ("roughly $310–315") was too low by
$13–16; the actual figure is only available by running it. The base-case valuation range of $330–390 remains
driven by the comps/multiple work rather than the DCF, for the reasons given in Section 3.3.
Base-rate check (Chan, Karceski & Lakonishok 2003), on the Scenarios tab: Base case is an 8.2% revenue
CAGR FY2027–35 off a $13bn base — below the top-decile persistence bar, and it does not extrapolate the
recent 18–20% rate. Bull is 11.0%, explicitly named as a top-quartile outcome. Bear is 4.5%, roughly
medtech-market growth, which is near the reference-class median for a mature franchise meeting new entrants —
hence its 30% weight rather than a tail weight.
Placement Share tab.