Workday [WDAY]
As of 2026-07-29. Provenance, construction, adjustments, and the weaknesses in my own numbers. Reproduction
scripts are committed under work/.
| Item | Source | Retrieval |
|---|---|---|
| Prices | Alpaca v2/stocks/snapshots, v2/stocks/{sym}/bars |
work/fetch_prices.py, work/gap_check.py |
| Fundamentals | SEC XBRL companyfacts CIK 0001327811 |
work/edgar_pull.py, work/extract.py |
| Balance sheet, income statement, SBC | 10-Q Q1 FY27 wday-20260430.htm, read directly |
work/fetch_docs.py, work/q.py |
| Retention-disclosure history | FY23, FY24, FY25, FY26 10-Ks + Q1 FY27 10-Q, full text | work/fetch_hist.py, work/censor.py |
| Backlog, guidance | 8-K Ex-99.1 wday-04302026x991.htm, wday-01312026x991.htm |
work/fetch_pr.py |
| Multiple history | own P/S by fiscal quarter | work/multiple_hist3.py |
| Implied path | assets/reverse_dcf.py |
work/run_paths.py, work/run_exit.py, work/tm_sens.py |
| Peer anchor | XBRL + balance sheets, 11 comparators | work/anchor.py |
| Option chain | Alpaca options contracts + snapshots | work/liquidity.py |
Recency asserted. Period 2026-04-30, filed 2026-05-22 — 68 days old. Not stale. The GOOGL (485-day-stale companyfacts) and Alcon (filing history ending 2010) failures do not apply.
This is the most consequential data error in the WDAY record and it comes from the exact trap the brief named.
| Basis | Count | Status |
|---|---|---|
dei:EntityCommonStockSharesOutstanding |
220,000,000 @ 2018-11-30 | STALE BY ~8 YEARS. What the screen used. |
| Diluted weighted average, Q1 FY27 (income statement) | 254,313k | Used for market cap |
| Basic weighted average, Q1 FY27 | 253,891k | Cross-check |
| 12 months forward (my estimate) | ~243m | Forward per-share work |
Root cause. Workday has Class A and Class B common stock — the Q1 FY27 release states repurchases of
"approximately 12.0 million shares of Class A common stock." The cover-page share count is therefore tagged
dimensionally, per class, and dimensional tagging does not survive SEC's aggregation into companyfacts.
The aggregated series stops at 2018-11-30 and a pipeline that takes "the latest available value" gets an
eight-year-old number that is well-formed, non-null, and wrong.
The mandated cross-check catches it in one line:
| Arithmetic | Filed diluted EPS | Result | |
|---|---|---|---|
| Correct count | 222 ÷ 254.313 = $0.873 | $0.87 | PASS ✓ |
| Screen's count | 222 ÷ 220 = $1.009 | $0.87 | FAIL — 16% off |
Consequence: market cap $42,718m rather than $36,954m (+15.6% at the screen's own price, 13.5% understated), EV/S 4.20x rather than 3.50x, EV/EBIT 40.5x rather than 46.3x (the EV/EBIT moves the other way because the screen's net-cash figure was also low). This is load-bearing on WDAY specifically, because it moves the implied-path margin by roughly 2pp and the verdict is decided inside 3pp.
Generalisable rule this establishes: for any dual-class issuer, dei:EntityCommonStockSharesOutstanding in
companyfacts must be treated as INDETERMINATE and the count read from the financial statements. The
net income ÷ shares ≈ filed EPS check is not optional — it is the only cheap detector for this class of
error, and it would also have caught the CRWD 4x split error in this same cluster.
Workday's fiscal Q4 is not separately tagged in XBRL; only the full year is. Q4 is derived as the annual value less the three filed quarters, with contiguity enforced (consecutive period ends 80–100 days apart) before any TTM is summed.
| Quarter ended | Revenue ($m) | Derivation |
|---|---|---|
| 2025-04-30 | 2,240 | filed 10-Q |
| 2025-07-31 | 2,348 | filed 10-Q |
| 2025-10-31 | 2,432 | filed 10-Q |
| 2026-01-31 | 2,532 | derived: FY26 9,552 − (2,240 + 2,348 + 2,432) |
| 2026-04-30 | 2,542 | filed 10-Q |
TTM revenue = 2,348 + 2,432 + 2,532 + 2,542 = $9,854m. Matches the screen exactly. Last-FY revenue ($9,552m) would have understated the base by 3.2%.
GrossProfit tagThe screen returned gross_margin_pct: null and scored quality: INDETERMINATE. That is correct D1 handling —
a missing input is INDETERMINATE, never FAIL, and the screen did not repeat the nan > 0.50 → FAIL error that
silently rejected NBIS and CAI. But the input is derivable from the income statement, so the criterion should
have been scored on real data rather than left blank.
| ($m) | Q1 FY27 | Q1 FY26 |
|---|---|---|
| Subscription services revenue | 2,354 | 2,059 |
| Costs of subscription services | 412 | 350 |
| Subscription gross margin | 82.5% | 83.0% (−0.5pp) |
| Professional services revenue | 188 | 181 |
| Costs of professional services | 192 | 187 |
| Professional services gross margin | −2.1% | −3.3% |
| Total gross margin | 76.2% | 76.0% |
Two facts unavailable to the screen: subscription gross margin is compressing 0.5pp — the largest of the three "cheap" names in this cluster (ADBE −0.18pp) and the closest thing in Workday's filings to a visible AI inference cost, though the filing does not attribute it; and professional services runs at a negative gross margin by design, as deployments shift to partners (services revenue is shrinking 1% a year).
| Component | 2026-04-30 ($m) | Screen | Mine |
|---|---|---|---|
| Cash and cash equivalents | 559 | ✓ | ✓ |
| Marketable securities (current) | 3,794 | ✓ | ✓ |
| Debt, current | (998) | ✓ | ✓ |
| Debt, noncurrent | (1,990) | ✓ | ✓ |
| Operating lease liabilities, noncurrent | (686) | counted as debt | disclosed, excluded |
| Operating lease liabilities, current | (131) | omitted | disclosed, excluded |
| Net cash ex-lease | +1,365 | +679 | HEADLINE |
| Net cash incl. all leases | +548 | — | Alternative |
Tags checked per the brief: LongTermDebt 2,988 @ 2026-04-30 — equals current 998 + noncurrent 1,990, so
LongTermDebt is the TOTAL and adding it to the components would double-count $3.0bn; LongTermDebtCurrent 998
✓; LongTermDebtNoncurrent 1,990 ✓; ConvertibleDebtNoncurrent last filed 2020-01-31 at $1,018m — stale by six
years and must not be used; MarketableSecuritiesCurrent 3,794 ✓ live.
Note that Workday is the one name of the five where every debt tag is internally consistent and current, so no
sign error was possible. Contrast ADBE (term debt omitted entirely because it is tagged LongTermDebt while the
screen keyed on LongTermDebtNoncurrent, last filed 2015) and PANW (convertible notes and long-term investments
both missed). The screen's $686m discrepancy here is a defensible lease-treatment choice, disclosed, not an error.
| # | Adjustment | Effect | Why |
|---|---|---|---|
| 1 | Share count 220.0m → 254.313m | market cap +15.6% | §2. The stale dual-class dei tag. |
| 2 | Add back the prior-year $166m restructuring to the Q1 FY26 margin base | headline expansion +11.5pp → +4.1pp | The reported comparison is 1.8% → 13.3%; ex-restructuring it is 9.2% → 13.3%. Two-thirds of the headline expansion is a base effect. The company discloses the charge twice in the release, so this is not concealed — but the headline is what a screen reads. |
| 3 | Derive gross margin from the income statement | Quality INDETERMINATE → PASS | §4. |
| 4 | Reclassify archetype INFLECTION → COMPOUNDER | applies level-based quality tests | Research §10. Under INFLECTION, operating margin is tested as a CHANGE requiring ~+5pp — which the unadjusted +11.5pp clears and the adjusted +4.1pp does not. Getting the archetype and the one-off wrong together would have produced a spuriously confident PASS. |
| 5 | Use 13.5% run-rate rather than the 15.4% CAGR as demonstrated growth | margin −1.9pp harsher | The CAGR window smooths a real deceleration. Per the brief: use the run-rate. |
| 6 | Step shares to ~243m for forward work | +4.7% to forward per-share values | Evidenced: 12.0m repurchased in Q1 FY27 alone. Deliberately conservative against a run-rate that would retire more. |
| 7 | Exclude operating leases from headline net cash | EV +$817m vs incl-lease | Consistency with the peer anchor set, computed on the same basis. |
No SBC adjustment. SBC is real, it is 17.0% of revenue and 226% of GAAP operating income, and the 10.4% GAAP operating margin carries it. The guided 30.5% non-GAAP operating margin is reported for reference and is never used as a terminal margin — using it would produce a required CAGR of 4.4% and a +9.1pp margin, i.e. it would manufacture a PASS out of an accounting convention. That the choice between 10.4% and 30.5% decides the verdict is stated openly in Valuation §3 rather than resolved silently.
Stated so a reviewer can attack them.