STRASMORE/EXPLORE 2,985 QUERIES

spy_annuel

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-03, from us-dividend-tax-for-french-investors.

as of ranking 8×3read in context →
spy_annuel — 8 rows by 3 columns, computed from US exchange, SIP and OPRA data.
anneerendement_brut_pctrendement_net_pfu_pct
20182.041.38
20191.751.18
20201.521.03
20211.20.82
20221.651.12
20231.40.95
20241.210.82
20251.070.72
Rows × columns
8 × 3
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for spy_annuel, derived from the stored result.
ColumnTypeRangeNotes
annee text 8 distinct values (2018, 2019, 2020…)
rendement_brut_pct number 1.07 to 2.04 percent
rendement_net_pfu_pct number 0.72 to 1.38 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

WITH
dividendes AS
(
    SELECT
        toYear(ex_dividend_date) AS an,
        sum(montant)             AS dividende_annuel
    FROM
    (
        SELECT
            ex_dividend_date,
            max(toFloat64(cash_amount)) AS montant
        FROM global_markets.stocks_dividends
        WHERE ticker = 'SPY'
          AND currency = 'USD'
          AND ex_dividend_date >= '2018-01-01'
          AND ex_dividend_date <  toStartOfYear(today())
        GROUP BY ex_dividend_date
    )
    GROUP BY an
),
cloture AS
(
    SELECT
        toYear(date)                   AS an,
        argMax(toFloat64(close), date) AS cours_fin_annee
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2018-01-01'
      AND date <  toStartOfYear(today())
    GROUP BY an
)
SELECT
    toString(d.an)                                                 AS annee,
    round(100 * d.dividende_annuel / c.cours_fin_annee, 2)         AS rendement_brut_pct,
    round(100 * d.dividende_annuel * 0.678 / c.cours_fin_annee, 2) AS rendement_net_pfu_pct
FROM dividendes AS d
INNER JOIN cloture AS c ON c.an = d.an
ORDER BY annee
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.