Salesforce [CRM]
As of 2026-07-29. How the numbers in this memo were built, what was rejected, and what a model must not do.
Every figure traces to a primary filing; the reproduction scripts are committed under work/.
| Item | Source | Retrieval |
|---|---|---|
| Prices | Alpaca v2/stocks/snapshots and v2/stocks/{sym}/bars |
work/fetch_prices.py, work/gap_check.py |
| Fundamentals | SEC XBRL companyfacts CIK 0001108524 |
work/edgar_pull.py, work/extract.py |
| Balance sheet, income statement | 10-Q Q1 FY27 primary document crm-20260430.htm, read directly |
work/fetch_docs.py, work/q.py |
| Disclosure language | FY24/FY25/FY26 10-Ks + Q1 FY27 10-Q, full text | work/censor.py, work/mentions.py |
| Earnings detail | 8-K Ex-99.1 crm-q1fy27xexhibit991.htm, crm-q4fy26xexhibit991.htm |
work/fetch_pr.py |
| Multiple history | own P/S by fiscal quarter, explicit split factors | work/multiple_hist3.py |
| Implied path | ~/.claude/skills/investment-memo/assets/reverse_dcf.py |
work/run_paths.py, work/run_exit.py |
| Peer anchor | XBRL + balance sheets for 11 comparators | work/anchor.py |
| Option chain | Alpaca paper-api/v2/options/contracts + v1beta1/options/snapshots |
work/liquidity.py |
Recency asserted. Latest filing period 2026-04-30, filed 2026-05-28 — 62 days old at the memo date. The GOOGL failure (485-day-stale companyfacts) and the Alcon failure (US filing history ending 2010) do not apply.
Salesforce's fiscal Q4 is not separately tagged in XBRL — only the full year is. Any naive quarterly series therefore skips Q4 entirely, which is the defect that produced a TTM missing a quarter elsewhere tonight.
Method used: Q4 = full-year value less the three filed quarters inside the same annual period, with contiguity enforced (each consecutive period end 80–100 days apart) before any TTM is summed.
| Quarter ended | Revenue ($m) | Derivation |
|---|---|---|
| 2025-04-30 | 9,829 | filed 10-Q |
| 2025-07-31 | 10,236 | filed 10-Q |
| 2025-10-31 | 10,259 | filed 10-Q |
| 2026-01-31 | 11,201 | derived: FY26 41,525 − (9,829 + 10,236 + 10,259) |
| 2026-04-30 | 11,133 | filed 10-Q |
TTM revenue = 10,236 + 10,259 + 11,201 + 11,133 = $42,829m. Matches the screen exactly, which is a genuine cross-check rather than a coincidence: both used TTM rather than last-FY. Note that last-FY revenue ($41,525m) would have understated the base by 3.1% — small here, but the same error understated MU by 136% and SNDK by 76% tonight.
| Basis | Count | Use |
|---|---|---|
| dei cover page, 2026-05-21 | 819.0m | Market cap today. What the screen used. Correct as filed. |
| Diluted weighted average, Q1 FY27 | 871m | EPS cross-check only. A weighted average spanning the ASR; not a point-in-time count. |
| Pro-forma for ASR completion | ~793m | Forward EPS and the 12-month target |
Both 819m and 793m are right, for different questions, and a model that mixes them is wrong. The ASR delivered 103m of ~129m shares upfront and the remaining ~26m settle in Q3 FY27 with the cash already paid. So: enterprise value is unaffected by the residual delivery; equity value per share is not.
A model must not use 871m for anything except reproducing filed EPS. Doing so overstates the market cap by 6.3%.
Cross-check, mandatory per the brief: net income ÷ diluted shares = 2,107 ÷ 871 = $2.419 against filed diluted EPS of $2.42. ✓ Scale confirmed; no 4.1x or 54% share-count error of the kind found elsewhere tonight.
The brief records net cash wrong on 11 of 11 names tonight, so this is itemised rather than asserted.
| Component | 2026-04-30 ($m) | Included? |
|---|---|---|
| Cash and cash equivalents | 8,935 | Yes |
| Marketable securities (current) | 2,902 | Yes |
| Debt, current | 0 | Yes |
| Noncurrent debt | (39,280) | Yes |
| Net cash, ex-lease | (27,443) | HEADLINE |
| Operating lease liabilities, current | (557) | Disclosed, excluded |
| Operating lease liabilities, noncurrent | (2,047) | Disclosed, excluded |
| Net cash incl. all leases | (30,047) | Alternative |
| Strategic investments | 7,772 | Disclosed, excluded |
| Net cash incl. leases and strategic investments | (22,275) | Alternative |
Tags checked per the brief's instruction: LongTermDebt (39,280 @ 2026-04-30 — matches the balance sheet's
noncurrent debt, so it is the total and there is no separate current tranche), LongTermDebtCurrent (0),
LongTermDebtNoncurrent (39,280 — identical to LongTermDebt; adding both would double-count $39.3bn),
ConvertibleDebtNoncurrent (last reported 2014, not applicable), MarketableSecurities*
(MarketableSecuritiesCurrent last reported 2014-10-31 — stale by twelve years; the live tag is
AvailableForSaleSecuritiesDebtSecuritiesCurrent at 2,902).
That last point is the trap. A pipeline that looks for MarketableSecuritiesCurrent finds a real,
well-formed 2014 value of $51.2m and, if it does not check the date, silently uses it. The screen avoided this
by using the AFS tag. It is recorded here because the same pattern is live in ADBE and PANW.
Reconciliation to the screen: screen −$30,025m = 11,837 − 39,280 − 260 (finance lease noncurrent, stale at 2026-01-31) − 275 (finance lease current, stale) − 2,047. It included finance leases from a prior period end and omitted the current operating lease. Difference from my figure: $2,582m, 1.4% of EV. Reported, not silently adopted.
| # | Adjustment | Effect | Why |
|---|---|---|---|
| 1 | Strip $444m Informatica from Q1 FY27 revenue growth | 13.3% → 8.8% | Company-disclosed. The growth rate is the input the framework ranks on and it must be organic. |
| 2 | Strip $558m strategic-investment gain from net income | EPS $2.42 → ~$1.92 | Non-operating, non-recurring, swung $621m YoY. |
| 3 | Step shares to 793m for forward work | +3% to forward EPS | Announced ASR completion; cash already spent. |
| 4 | Exclude strategic investments from net cash | EV +$7,772m vs the alternative | Illiquid, marked, and the marks are the very item adjusted out in (2). Including them would double-count the optimism. |
| 5 | Use ex-lease net debt as headline | EV −$2,604m vs incl-lease | Consistency with the peer anchor set, which was computed on the same basis. |
No adjustment made for SBC. SBC is a real cost, it is 8.3% of revenue, and the GAAP operating margin of 20.4% already carries it. The non-GAAP 34.8% is reported for reference only and is never used as a terminal margin.
Stated so a reviewer can attack them.