{"slug":"gold-miner-covered-call-etfs","qid":"ytd_total_return","label":"2026 price return, distributions and total return: miners, wrapper and bullion","post_title":"Gold Miner Covered Call ETFs: Yield vs Upside","post_url":"/blog/gold-miner-covered-call-etfs#q-ytd_total_return","columns":["symbol","price_return_pct","distributions_pct","total_return_pct","priced_window"],"rows":[{"symbol":"GDX","price_return_pct":2.4,"distributions_pct":0,"total_return_pct":2.4,"priced_window":"Jan 2 to Oct 2, 2026"},{"symbol":"GDXJ","price_return_pct":0.4,"distributions_pct":0,"total_return_pct":0.4,"priced_window":"Jan 2 to Oct 2, 2026"},{"symbol":"GDXY","price_return_pct":-37,"distributions_pct":34.9,"total_return_pct":-2,"priced_window":"Jan 2 to Oct 2, 2026"},{"symbol":"GLD","price_return_pct":-4.6,"distributions_pct":0,"total_return_pct":-4.6,"priced_window":"Jan 2 to Oct 2, 2026"}],"shape":"table","sql":"WITH\n    price_window AS\n    (\n        SELECT\n            ticker,\n            argMin(toFloat64(close), date) AS first_close,\n            argMax(toFloat64(close), date) AS last_close,\n            min(date)                      AS from_date,\n            max(date)                      AS through_date\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker IN ('GDX', 'GDXJ', 'GDXY', 'GLD')\n          AND date >= '2026-01-02'\n        GROUP BY ticker\n    ),\n    cash AS\n    (\n        SELECT\n            ticker,\n            sum(amount) AS cash_paid\n        FROM\n        (\n            SELECT\n                ticker,\n                id,\n                max(toFloat64(cash_amount)) AS amount\n            FROM global_markets.stocks_dividends\n            WHERE ticker IN ('GDX', 'GDXJ', 'GDXY', 'GLD')\n              AND ex_dividend_date >= '2026-01-02'\n              AND ex_dividend_date <= today()\n            GROUP BY ticker, id\n        )\n        GROUP BY ticker\n    )\nSELECT\n    p.ticker                                                                      AS symbol,\n    round((p.last_close / p.first_close - 1) * 100, 1)                            AS price_return_pct,\n    round(ifNull(c.cash_paid, 0) / p.first_close * 100, 1)                        AS distributions_pct,\n    round(((p.last_close + ifNull(c.cash_paid, 0)) / p.first_close - 1) * 100, 1) AS total_return_pct,\n    concat(formatDateTime(p.from_date, '%b %e'), ' to ', formatDateTime(p.through_date, '%b %e, %Y')) AS priced_window\nFROM price_window AS p\nLEFT JOIN cash AS c ON c.ticker = p.ticker\nORDER BY symbol","computed_at":"2026-10-04T15:03:40.548021+00:00","elapsed":0.184235976}