STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

What Stocks Are in the DAX 40?
SAP's US line: price move vs dividend contribution by yearranking · 2026-10-04 · 10×4Preview: 10 ranked values, largest first. Dividend dates per year: SAP's US line vs Coca-Colaranking · 2026-10-04 · 10×3Preview: 10 ranked values, largest first. How a 15% weight cap bites in a market-cap-weighted basketranking · 2026-10-04 · 8×4Preview: 8 ranked values, largest first.
How to Invest in the DAX: Which Index You Get
When a US listed German equity fund trades, by ET half hourseries · 2026-10-04 · 32×3Preview: a 16-point series, roughly flat. Price only versus dividends reinvested, both starting at 100ranking · 2026-10-04 · 15×4Preview: 15 ranked values, smallest first. What a distributing fund pays out, and whenseries · 2026-10-04 · 14×4Preview: a 14-point series, roughly flat.
How DAX Index Weights Are Calculated
Price move versus dividends paid, 2021 through 2025ranking · 2026-10-04 · 8×4Preview: 8 ranked values, largest first. A 10 percent index cap, worked on a 40 stock baskettable · 2026-10-04 · 12×5
DAX Options Settlement Price: ODAX vs ODAP
DAX option settlement clock: last trading time and settlement auction, CETtable · 2026-09-25 · 3×5
DAX Futures Explained: FDAX, FDXM, FDXS
Quarterly third Friday volume against the trailing 20 session averageseries · 2026-09-23 · 14×5Preview: a 14-point series, ending higher. Share of a Germany fund's monthly volume printed after the 17:30 CET Frankfurt closeseries · 2026-09-23 · 12×3Preview: a 12-point series, ending lower. Where a listed Germany fund's volume sits on the New York clock (Jun to Aug 2026)ranking · 2026-09-23 · 8×3Preview: 8 ranked values, largest first.
Eurex Option Codes: ODAX, ODAP, OESX
One US options symbol, taken apart: busiest SPY contracts on 17 June 2026table · 2026-09-22 · 8×6 Distinct expirations traded per underlying, 17 June 2026ranking · 2026-09-22 · 5×2Preview: 5 ranked values, largest first. SPY option volume by days left to expiry, 17 June 2026ranking · 2026-09-22 · 5×3Preview: 5 ranked values, largest first. What one US equity option contract covers, 17 June 2026ranking · 2026-09-22 · 5×3Preview: 5 ranked values, largest first.
Xetra Trading Hours and Holidays 2026–2027
Weekdays, weekday closures and Xetra sessions per calendar yeartable · 2026-09-16 · 2×5 Days when the New York open lands at 14:30 Frankfurt time (three-hour overlap), 2026 and 2027series · 2026-09-16 · 4×5Preview: a 4-point series, ending lower. Xetra non-trading days 2027, from the Deutsche Börse trading calendartable · 2026-09-16 · 8×5 Xetra non-trading days 2026, from the Deutsche Börse trading calendartable · 2026-09-16 · 8×5
DAX Daily Options: How Eurex 0DTE Works
Same-day expiries as a share of SPY option volume: every session, July 2026series · 2026-08-03 · 21×4Preview: a 16-point series, roughly flat. Expirations on the SPY option board: every listed expiry over 30 days, 16 July 2026series · 2026-08-03 · 13×4Preview: a 13-point series, ending lower. Median implied volatility by days to expiry: near-the-money SPY contracts, 16 July 2026ranking · 2026-08-03 · 5×4Preview: 5 ranked values, smallest first. Distinct expirations listed for the rest of July 2026: eight US namesranking · 2026-08-03 · 8×3Preview: 8 ranked values, largest first.
SAP's US line: price move vs dividend contribution by year

SAP's US line: price move vs dividend contribution by year

most recentas of ranking 10×4read in context →
SAP's US line: price move vs dividend contribution by year — 10 rows by 4 columns, computed from US exchange, SIP and OPRA data.
yearprice_return_pctdividend_pcttotal_return_pct
201612.041.6913.74
201730.21.5931.79
2018-11.421.47-9.95
201935.11.6936.79
2020-4.691.27-3.43
20218.411.7510.16
2022-27.021.84-25.18
202348.672.1550.82
202463.911.5965.5
2025-0.091.081
the exact SQL behind every number
WITH yearly AS
(
    SELECT
        toYear(date)                   AS fiscal_y,
        argMin(toFloat64(close), date) AS first_close,
        argMax(toFloat64(close), date) AS last_close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SAP'
      AND date >= '2016-01-01'
      AND date <  '2026-01-01'
    GROUP BY fiscal_y
),
cash AS
(
    SELECT
        toYear(ex_dividend_date)    AS fiscal_y,
        sum(toFloat64(cash_amount)) AS dividends
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SAP'
      AND ex_dividend_date >= '2016-01-01'
      AND ex_dividend_date <  '2026-01-01'
    GROUP BY fiscal_y
)
SELECT
    toString(y.fiscal_y)                                                         AS year,
    round(100 * (y.last_close - y.first_close) / y.first_close, 2)               AS price_return_pct,
    round(100 * c.dividends / y.first_close, 2)                                  AS dividend_pct,
    round(100 * (y.last_close - y.first_close + c.dividends) / y.first_close, 2) AS total_return_pct
FROM yearly AS y
LEFT JOIN cash AS c ON c.fiscal_y = y.fiscal_y
ORDER BY year
$