SAP › analyze
SAP · Analyze
Date: 2026-08-27 · Command: /analyze-from-before · Baseline: analyze-2026-07-23.md (, conviction [7]/10)
Currency note (re-verified this pass): ADR still trades 1:1 with the Frankfurt ordinary; SAP reports in EUR; spot EUR/USD ≈ 1.1656 (up from ~1.08-1.10 at baseline). Statement fields from fin.py/Yahoo are EUR; price fields are USD — a currency-mixed feed, confirmed broken again this pass (see Data Traps below).
1. What this updates
Baseline: Output/Stocks/Technology/SAP/analyze-2026-07-23.md, written one day after the Q2 FY2026 print, verdict [7]/10, fair value $155-190 base, entry <$155/<$140-strong, trim >$210-220. A second-newest report (analyze-2026-03-20.md, BUY moderate conviction, composite 7.8/10) was also read in full — it supplies the pre-drawdown baseline several structural claims trace back to, including a EU antitrust probe** the July baseline silently dropped (see §5).
Event list since 2026-07-23 (35 days): - 2026-07-24 — CEO Christian Klein bought 2,052 shares at €158.49 (~€325K), one day after the Q2 print. - 2026-07-27 — Second tranche of the €10B buyback launched: up to €2.6B by January 2027. - 2026-07-09 (before baseline, missed by it) — EU antitrust probe closed with no fine. SAP committed to 10-year global concessions (split maintenance contracts, abolished reinstatement fees, capped back-payment charges). - ~2026-08-05 — Q2 6-K/press release fully available, resolving the two items the baseline flagged as "approximate pending 6-K." - 2026-08-26 — UBS downgrades to Neutral (from Buy) on slow agentic-AI rollout (17 of a targeted 200 agents live), even while raising its target to €201 (from €164); cloud gross margin before SBC fell for the first time since 2021; higher AI token costs pressuring R&D. Stock fell ~4% intraday. - 2026-08-27 — Stock +4.5% as a Salesforce print "breaks software's AI panic" sector-wide — a Price/sentiment event with no SAP-specific fundamental content. - Price moved $149.23 → $221.17, +48.2%, from below the accumulate zone to above the trim zone, in 35 days. - Celonis v. SAP (US antitrust): trial date now set for Dec 7, 2026; Celonis was allowed to add trade-secret claims (June 2026 ruling) — the case moved from "early-stage" to "on a clock."
No structural business-model event occurred — no acquisition that changes what SAP sells, no segment reclass, no strategic redirection. The change is almost entirely Price (a 48% run) plus two State resolutions (EU settlement, Q2 6-K) plus one intensifying Structural-adjacent risk (AI monetization pace).
2. The delta ledger
Lead: RETRACTED
| # | Claim (baseline) | Status | What carried it |
|---|---|---|---|
| 12 | "Debt/assets 36%, net cash ~€2.4B" (FY2025) | ❌ RETRACTED | fin.py balance sheet: Debt €7.48B, Assets €70.36B → Debt/Assets = 10.6%, not 36%. The July figure (36%) equals total liabilities/assets (€25.29B/€70.36B = 35.9%) — total liabilities was conflated with total debt. This exact 10.6% figure is independently confirmed by the March 2026 baseline's own table (Debt-to-Assets 2025 = 10.6%), so this is a two-source agreement against a one-report error, not a close call. Net cash is real but smaller than claimed: Cash €8.22B − Debt €7.48B = €0.74B (annual) to ~€1.7B (ttm, broader cash definition). Cause: arithmetic error in the baseline, not a vendor trap — no new pitfall note warranted; flagged for the orchestrator as a QA pattern worth watching (liabilities vs. debt conflation) rather than a data-source lie. |
SUPERSEDED
| # | Claim (baseline) | Status | What carried it |
|---|---|---|---|
| 20 | EU antitrust probe — carried in the March 2026 report as risk #1, HIGH severity ("potential 10% global revenue fine"), then silently absent from the July 2026 baseline with no resolution note | 🔄 SUPERSEDED | Primary sourcing (The Register, Forrester, ERP Today, multiple independent outlets) confirms the European Commission closed the probe July 9, 2026 with no fine — SAP agreed to 10-year global concessions (split maintenance contracts, abolished reinstatement fees, capped back-payment charges). This closed two weeks before the July baseline was written, so its silent disappearance was a diligence gap in that report, not a fresh development this pass. Recorded here so it does not vanish a second time. Net effect: favorable — a named HIGH-severity risk retired at effectively zero cost. |
REFRESHED
| # | Claim (baseline) | Old → New | Status |
|---|---|---|---|
| 8 | Q2 Current Cloud Backlog — baseline flagged approximate pending 6-K: "~€21-22B, +22% reported/+28% cc — decelerated from Q1, the number that spooked the market" | → Confirmed (SEC 6-K + press release): €22.9B, +27% reported / +26% cc | 🔁 REFRESHED, resolution favorable — the print the market reacted to on the day was worse than what the final, audited figure shows. |
| 9 | Q2 op profit/EPS "not cleanly confirmable... approximate pending 6-K" | → Confirmed: Q2 non-IFRS EPS €1.59 (+6% yoy, missed Zacks consensus $2.00→actual $1.85); Q1 non-IFRS EPS €1.72 (+20% yoy, beat). Non-IFRS operating-profit guide trimmed €11.9-12.3B → €11.8-12.2B, cause identified and primary-sourced: Dremio + Prior Labs acquisitions (closed July), >€100M dilutive in 2026. Cloud revenue guide (€25.8-26.2B) and FCF guide (~€10B) both reaffirmed unchanged. | 🔁 REFRESHED, mixed: backlog/cloud fine, EPS growth decelerated sharply (+20%→+6% yoy) and missed consensus — the first clean negative surprise in the file. |
| 11 | Share count "flat" (SBC offsets buybacks), 1,167.6M FY25 | → SharesOut now 1.154B (fin.py), a 1.2% reduction since FY25; second buyback tranche (€2.6B by Jan-2027) launched 7/27; CEO bought 2,052 sh personally 7/24 | 🔁 REFRESHED, modestly positive — the flat-share-count era may be inflecting, though one quarter of data is thin. |
| 14 | Price/valuation block (FV $155-190, entry <$155/<$140, trim >$210-220, fwd P/E "~18-19x") | → Fully re-derived, see §4. Current-year fwd P/E is now ~27-28x (two independent bases agree — see Data Traps). | 🔁 REFRESHED per command rule — Price rows never carry forward. |
| 19 | Analyst consensus (UBS €164 Buy, JPM Neutral €175, GS trimmed GM est) | → UBS downgraded to Neutral but raised target to €201; Morgan Stanley €190→€215; Wells Fargo €165→€210; consensus mean now $245.33 ADR (fin.py), recommendation "buy" (1.56 mean) | 🔁 REFRESHED — targets broadly rising even as the rating on the AI-monetization question turns more cautious; a genuine tension, not noise (see §3). |
DRIFTED
| # | Claim (baseline) | Status | Level that would break it |
|---|---|---|---|
| 16b | Named risk #2, "AI monetization lag — Joule/Business AI spend outruns revenue" | 📉 DRIFTED against the thesis | This is now the market's dominant live objection, not a background risk: only 17 of a targeted 200 agents shipped, UBS's specific downgrade trigger, cloud gross margin before SBC fell for the first time since 2021 (a new, more concrete data point than the baseline had). Breaks the thesis if: agent count stays materially short of 200 by year-end and cloud GM-before-SBC keeps falling for a second consecutive quarter — that combination would mean AI is a cost center with no monetization path in sight, not a temporary ramp. |
| 4b | Sub-claim under "gross margin stable ~73% = moat signature" | 📉 DRIFTED (component-level only) | Blended company gross margin held (73.7% ttm, fin.py) — CARRIED at the blended level. But the cloud-specific margin before SBC softened for the first time since 2021 per UBS — a leading indicator inside a lagging aggregate. Breaks if blended GM itself starts compressing. |
| Celonis (new sub-item under risk #5, post-migration/competitive risk) | US antitrust suit progressed from "early-stage, allowed to proceed" (March framing) to a set trial date, Dec 7, 2026, with trade-secret claims added (June 2026 ruling) | 📉 DRIFTED | Not yet a thesis-breaker — SAP's own switching-cost moat is not what's on trial, a "data access aftermarket" claim is — but it is now a datable event inside the recheck window and belongs in triggers, which it wasn't in the baseline. |
CARRIED (compact)
- #1 Structural — wide-moat ERP incumbent, deep switching costs. ✅ No competitor breakthrough found; CIO.com/Forrester coverage shows customer friction and cost complaints about S/4HANA migration, not stated churn to rivals. Survived a third consecutive report (March → July → now).
- #2 Structural — revenue-stream map (cloud engine / declining licenses / low-margin services). ✅ Refreshed with data: software support revenue −6% yoy, "first sustained decline in years" — the deliberate cannibalization proceeding exactly as described.
- #3 Structural — S/4HANA forced-migration tailwind (ECC maintenance ends 2027/2030). ✅ Forrester: fewer than 50% of ECC customers will complete migration by 2027 — confirms a long runway of captive demand still ahead, not behind.
- #5 Trend — op margin progressing toward ~30% non-IFRS. ✅ FY2026 guide (€11.8-12.2B non-IFRS op profit ÷ ~€39-40B total revenue) still implies ~30-33%, on track despite the trim; the trim's cause (M&A dilution) is a special item, not organic margin decay.
- #6 Trend — FCF inflection, FY2026 guide ~€10B. ✅ Reaffirmed unchanged in the Q2 release; ttm FCF (~€9.1B, fin.py) tracking toward it.
- #7 Trend — revenue/cloud growth (7.6% 3yr revenue CAGR; cloud mid-20s%). ✅ Q2 cloud revenue +24% yoy confirmed by two independent secondary sources, matching the baseline's approximate figure exactly.
- #13 State — dividend €2.35 FY25 (+7%), payout ~37%. ✅ Payout ratio 0.38 (fin.py) — flat, well covered; yield's fall to 1.38% is a Price effect (see DYT note, §4), not a dividend problem.
- #17 Judgment block — the baseline's own explicit thesis-break gates. ✅ None fired. CCB cc-growth 26% (gate: <15%); cloud rev cc-growth ~24-28% (gate: <18%); non-IFRS op margin still tracking ~30-33% (gate: failing to progress); net cash intact, no flip to net debt; no evidence of post-migration churn to competitors found. This is the single most decisive block in the ledger — the baseline wrote falsifiable tests and none of them broke.
- #18 Sentiment — management framed Q2 decel as macro/cyclical, "weight skeptically." ✅ Carried, with one new corroborating (not conclusive) force: CEO Klein backed the framing with a personal €325K buy the day after the print.
- #4a Trend — ROIC/ROE normalizing up. ✅ ROE continued improving: 15.4% (FY25, baseline) → 18.3% ttm (fin.py). Second consecutive report showing the same direction.
NEW (no baseline counterpart)
- N1. CEO insider purchase (7/24, €325K) — a golden flag per the small-cap framework's sentiment lens, applied here qualitatively; modest in size relative to Klein's total compensation, so a real but limited signal.
- N2. Second buyback tranche (€2.6B by Jan-2027) launched 7/27 — the first concrete move against the "flat share count" risk named in the baseline.
- N3. Cloud gross margin before SBC fell for the first time since 2021 — a new, more specific leading indicator on the AI-monetization risk than the baseline had access to.
- N4.
fin.py's snapshot fields for this ticker (EV, EV/EBITDA, EV/Rev, P/B, BVPS, Graham IV) are badly corrupted this pass — see Data Traps.
UNTESTED
- Tariff/US-macro/FX (named risk #3). No fresh tariff-specific news surfaced this pass beyond the FX move itself (EUR/USD 1.08→1.166, a real tailwind-to-EUR-earnings-in-USD-terms but not independently investigated as a tariff question). Carried forward untested.
- Post-migration churn to competitors (named risk #5). No direct evidence found either way. One CIO.com source: "only a minority [of customers] considering alternative ERP vendors" — mildly reassuring, but a single secondary source is not corroboration. Stays UNTESTED.
- 5-8yr FCF/revenue CAGR (baseline's own flagged data gap, inherited from the March report too).
fin.pyagain returns only 4 fiscal years (2022-2025), so only a 3yr CAGR is computable (Revenue 7.6%, FCF 20.8%, matching the March report exactly). This is the second consecutive report to flag this gap without resolving it — a genuine escalation-worthy data hole; would require a paid roic.ai history pull or a manual 10-K/20-F lookback the next several years back.
3. How the close calls were decided
AI-monetization risk vs. the thesis-break gates holding. This is the central tension in the file. On one hand, none of the baseline's own explicit falsification tests fired — CCB, cloud growth, and margin trajectory all cleared their bars. On the other, the qualitative AI risk the baseline named as risk #2 has visibly intensified: a specific downgrade, a specific shortfall (17 of 200 agents), and a specific new leading-indicator (cloud GM-before-SBC turning down). Resolution: this is not yet a Structural break — it is a Structural claim (moat intact) sitting next to a State claim trending the wrong way (AI cost/monetization gap), and the State evidence has not yet accumulated enough to overturn the Structural read. It gets a DRIFTED flag with an explicit break level (§2) rather than a downgrade of the moat itself, because the underlying switching-cost mechanism is untouched — customers are not leaving, they are simply not yet paying extra for agents.
Rising analyst targets vs. a rating downgrade, same week. UBS cut its rating but raised its target — not a contradiction once read carefully: the target move reflects the business being worth more than €164 implied (backlog, buyback, EU resolution), while the rating cut reflects timing — UBS does not think the stock earns a re-rating premium right now given the AI pace. That reading was weighted over "UBS is just being noisy," because Morgan Stanley and Wells Fargo's target raises (€190→215, €165→210) both landed in the same window and tell the same story: fundamental value has risen modestly, but the price has risen much faster than that, and rating conviction is the variable absorbing the gap.
The debt/assets and net-cash correction (RETRACTED row #12). This was decided on two-source agreement (fin.py's own annual balance sheet table and the independently-written March 2026 report) against the July baseline's single figure, with a mechanically identifiable cause (liabilities vs. debt), which is why it was called RETRACTED rather than left as a live tension.
Valuation: does the 48% price move mean the thesis "worked," or that it's now stretched? Both, decided by looking at what actually changed in the denominator versus the price. FY2026E non-IFRS consensus EPS was cut from ~€7.4 (baseline's figure) to €6.84 over the period (down ~7.6%), while price rose 48%. None of the re-rating is explained by upward earnings revisions — all of it is multiple expansion, from ~18-19x forward at baseline to ~27-28x current-year now (two independent bases agree, see §4). That is decisive for the verdict: the business held up (thesis persistence is high), but the price has moved well past what the fundamentals delivered, into territory the baseline itself only assigned to its bull case ($220+, conditional on AI monetizing and margins hitting 30%+) — preconditions that have not yet clearly been met.
4. Valuation — re-derived from scratch
Data trap hit and corrected: fin.py's snapshot for SAP this pass returned EV $3.44T, EV/EBITDA 292.5x, EV/Rev 90.1x, P/B 69.6x, BVPS $3.18, Graham IV $23.60 — all obviously broken (see [[pitfall-currency-mixed-ev-is-invertible-on-adrs]] and [[pitfall-adr-book-value-corrupts-price-to-book]], both of which predicted exactly this failure mode on a EUR-reporting ADR). True BVPS ≈ equity €44.6B ÷ ~1.17B shares ≈ €38 ≈ $44 at spot FX — not $3.18. Do not use fin.py's EV, EV/EBITDA, EV/Rev, P/B, or Graham IV fields for this ticker without hand-rebuilding them; every multiple below was rebuilt from primary-sourced EPS/margin figures, not read off the snapshot.
Forward multiple, re-derived two independent ways (both landed in the same range — the corroboration bar this command requires):
1. IFRS basis (Yahoo's own current-year field, not its mislabeled "forward" field): epsCurrentYear $8.19 / priceEpsCurrentYear 27.0x — Yahoo's forwardPE (22.98x) actually prices forwardEps $9.63, which is FY2027, one year out; priceEpsCurrentYear is the FY2026 (current-year) figure and is the one to quote. [[pitfall-vendor-forward-eps-is-the-wrong-fiscal-year]] fires again, on a new ticker, in the same calendar month it fired on TSM/QCOM/AMD/ANET/DPZ/EMR.
2. Non-IFRS basis, hand-built from primary sourcing: FY2026E non-IFRS consensus EPS €6.84 (revised down from ~€7.4 at baseline) × EUR/USD 1.1656 = $7.97. At $221.17: 27.75x.
Both bases land at ~27-28x current-year — up from ~18-19x at baseline. None of this move came from earnings upgrades (the EPS estimate was cut, not raised); it is pure multiple expansion.
| Model | Output | Weight & read |
|---|---|---|
| Current-year fwd P/E | ~27-28x (two independent bases) | High weight. Peer comparison is now unreliable (ORCL 13.9x and WDAY 15.3x fwd, per fin.py, are almost certainly hit by the same next-FY vendor trap that fired on WDAY specifically on 2026-08-27 — not corrected here, so the "cheapest vs. peers" framing from the baseline can no longer be asserted with confidence and is downgraded to low-confidence). |
| EV/FCF, hand-rebuilt | Mkt cap $255.3B ÷ ttm FCF ~€9.1B ($10.6B) ≈ 24x, FCF yield ~4.2% | Moderate. Down from baseline's 5.3% FCF yield — same re-rating story. |
| Bogle expected return | ~1.4% yield + high-single-digit EPS growth (post-cut), no further re-rating tailwind available (multiple already expanded) ≈ 8-12%/yr | High weight, and this is the most important line in the table: baseline's 14-17%/yr Bogle case assumed the multiple would re-rate — it already has, so that leg of the return is spent. |
| Graham √(22.5×EPS×BVPS), hand-rebuilt | ~$84 (EPS≈$7.11, BVPS≈$44.5, both hand-converted from EUR) | Low weight, as baseline — asset-light software punishes this lens. Confirms the baseline's own by-hand €76 figure (converted), not the corrupted $23.60 fin.py field. |
| DYT | Yield 1.38% now below 5yr average 1.48% | Low weight — this is the [[pitfall-dyt-inverts-when-price-caused-the-yield]] case exactly: the yield fell because price rose 48%, not because the dividend was cut. It restates the price move, it does not add independent signal. |
Fair-value range: $159-207, base ~$183 (20-26x FY2026E non-IFRS $7.97, moderated down from the baseline's 20-23x-on-peers framing to reflect that the peer discount is unverified this pass and the AI-monetization doubt is now live and specific). Current price $221 sits above the top of this range — for the first time since the drawdown began, SAP is priced above fair value, not below it.
- Bull case (AI monetization actually inflects, 200-agent target substantially met, cloud GM-before-SBC stabilizes, op margin clears 30%+): $230-250, roughly where analyst consensus ($245 mean) already sits.
- Bear case (agent rollout stays stuck near current pace, cloud GM keeps softening, growth decelerates toward mid-teens cc): $150-165, close to where the stock traded five weeks ago.
5. What is genuinely new
Covered inline in §2's NEW section (CEO insider buy, second buyback tranche, cloud-GM-before-SBC leading indicator, and the EU antitrust resolution surfaced for the first time in this chain despite predating the July baseline). The EU antitrust resolution deserves the most emphasis: it was a real, positive, primary-sourced event (European Commission closing a formal investigation with no fine, 10-year global concessions) that the July baseline never mentioned — a live illustration of exactly the failure mode this command exists to catch, caught one cycle late.
6. Updated verdict — TRIM, conviction 7.0 (unchanged from baseline's 7)
Great company, no longer cheap. Thesis persistence is high — every Structural claim and most Trend claims CARRIED or REFRESHED favorably, the baseline's own explicit thesis-break gates all held, and a HIGH-severity risk (EU antitrust) resolved favorably without SAP ever getting credit for it in the file. That argues for holding conviction in the business flat to slightly up. But the price ran 48% in 35 days on no EPS upgrade — the entire move is multiple expansion, from ~18-19x to ~27-28x forward, past the baseline's own bull-case ceiling while the bull case's actual preconditions (AI monetizing, margin at 30%+) remain unmet, and a specific, primary-sourced AI-monetization risk (17/200 agents, cloud GM-before-SBC turning down) is now the dominant live objection. Conviction in the company stays at 7.0; the verdict moves from to TRIM because the valuation question — not the business-quality question — is what changed.
A portfolio-specific passage was removed from the public build.
- Trim: 25x ttm (ttm EPS $7.79 → ≈$195 today; the site recomputes this live). Set on ttm rather than fwd deliberately —
forwardPEis confirmed this pass to be next-fiscal-year, and a fwd-basis trim would inherit that error and set the ceiling too high (see [[pitfall-multiple-trim-inherits-the-broken-vendor-field]]). - Accumulate zone: <$165 (was <$155 — raised modestly for one year of compounding + the buyback restart, not for the price run). Strong add: <$145 (was <$140).
- Thesis-break (unchanged from baseline, still the live falsification set): CCB cc-growth <~15%; cloud revenue cc-growth <~18%; non-IFRS op margin failing to progress toward ~30%; net cash flipping to material net debt via M&A; evidence of customer churn to competitors post-S/4HANA.
- New watch item added this pass: agentic-AI rollout stuck materially short of the 200-agent year-end target and a second consecutive quarter of cloud-GM-before-SBC decline — that combination would upgrade the AI-monetization risk from "drifted" to "thesis-breaking."
Watchlist write-back: conviction stays [7.0], keep , move from Shortlist/On-Deck framing to the ✂️ Trim Zone — it is already there per the current file's own sell-side table.
7. What this pass did NOT test
- Tariff/US-macro specifics (named risk #3) — carried forward untested; only the FX leg was checked.
- Post-migration churn to competitors (named risk #5) — one weak secondary source, not corroborated; stays UNTESTED.
- 5-8yr FCF/revenue CAGR — still only 4 fiscal years available via
fin.py; this is the second consecutive report to flag this gap without resolving it. The next pass should either pull a paid roic.ai history or hand-build from 10-K/20-F back to ~2018-2020 before quoting a CAGR longer than 3 years on this name. - Peer forward multiples (ORCL 13.9x, WDAY 15.3x fwd) were pulled but not corrected for the same wrong-fiscal-year defect known to affect WDAY specifically as of 2026-08-27 — the "SAP is cheapest vs. peers" framing from the baseline is downgraded to low-confidence rather than re-asserted or retracted, because correcting it would require a full re-analysis of two other tickers, out of scope here.
- Single-source items: the CEO insider-buy detail and the cloud-GM-before-SBC figure both came from one outlet each (ad-hoc-news.de and UBS's note as reported by Proactive/Blockonomi respectively) — directionally used, but not cross-confirmed against a second independent source.
PITFALL NOTES FOR ORCHESTRATOR
- No new vendor-trap pitfall needed for the debt/assets retraction (baseline row #12) — that error was analyst arithmetic (total liabilities conflated with total debt), not a data source lying. Worth a QA reminder somewhere that "Debt/Assets" must be computed from the
Debtrow, not theLiabsrow, infin.py's balance-sheet block, but this is a one-off human error, not a systemic pattern (yet). - [[pitfall-currency-mixed-ev-is-invertible-on-adrs]] and [[pitfall-adr-book-value-corrupts-price-to-book]] both fired again, on SAP specifically, five months after AZN/TSM established them. SAP's
fin.pysnapshot this pass: EV $3.44T, EV/EBITDA 292.5x, P/B 69.6x, BVPS $3.18, Graham IV $23.60 — all unusable. Both existing notes already cover the mechanism; SAP could be added to theirtickers:list as a confirming instance if the orchestrator wants the note's evidence base broadened, but no new note is needed. - [[pitfall-vendor-forward-eps-is-the-wrong-fiscal-year]] fired on a sixth-plus name (SAP) in the same calendar month it already caught TSM, QCOM, AMD, ANET, DPZ, EMR, WDAY. SAP is a clean textbook instance:
forwardPE22.98x prices FY2027forwardEps$9.63;priceEpsCurrentYear27.0x onepsCurrentYear$8.19 is the correct FY2026 read, exactly matching the amendment's prescribedepsCurrentYear/priceEpsCurrentYearshortcut. Worth adding SAP to that note's ticker list — it is now firing on essentially every name checked in August 2026, which may be worth escalating from "pitfall" to a standing pre-flight check infin.pyitself (e.g., printpriceEpsCurrentYearnext toPE(fwd)in the snapshot block, as the note's amendment already suggests for AMD/ANET). - Watch for a possible pattern, not yet confirmed twice independently on the same mechanism: a named risk flagged in one baseline (EU antitrust, March 2026) silently disappearing from the next full analysis (July 2026) with no resolution note, when the resolution (favorable, in this case) had already happened before that report was written. If this recurs on another ticker, it may be worth a
pattern-*note on "risk rows need an explicit resolved/superseded status even when dropped from the active risk list."