{"slug":"gold-vs-real-interest-rates","qid":"rolling_corr","label":"Rolling 12-month correlation: daily GLD returns vs daily changes in the 10-year real yield","post_title":"Gold vs Real Interest Rates: Does It Hold?","post_url":"/blog/gold-vs-real-interest-rates#q-rolling_corr","columns":["quarter","quarter_label","corr_12m","sessions"],"rows":[{"quarter":"2006-01-01","quarter_label":"Q1 2006","corr_12m":0.04,"sessions":8},{"quarter":"2006-04-01","quarter_label":"Q2 2006","corr_12m":0.17,"sessions":8},{"quarter":"2006-07-01","quarter_label":"Q3 2006","corr_12m":0.27,"sessions":8},{"quarter":"2006-10-01","quarter_label":"Q4 2006","corr_12m":0.45,"sessions":8},{"quarter":"2007-01-01","quarter_label":"Q1 2007","corr_12m":0.53,"sessions":8},{"quarter":"2007-04-01","quarter_label":"Q2 2007","corr_12m":-0.09,"sessions":8},{"quarter":"2007-07-01","quarter_label":"Q3 2007","corr_12m":-0.13,"sessions":7},{"quarter":"2007-10-01","quarter_label":"Q4 2007","corr_12m":-0.57,"sessions":7},{"quarter":"2008-01-01","quarter_label":"Q1 2008","corr_12m":-0.91,"sessions":6},{"quarter":"2008-04-01","quarter_label":"Q2 2008","corr_12m":-0.93,"sessions":6},{"quarter":"2008-07-01","quarter_label":"Q3 2008","corr_12m":-0.62,"sessions":6},{"quarter":"2008-10-01","quarter_label":"Q4 2008","corr_12m":-0.35,"sessions":7},{"quarter":"2009-04-01","quarter_label":"Q2 2009","corr_12m":-0.59,"sessions":6},{"quarter":"2009-07-01","quarter_label":"Q3 2009","corr_12m":-0.59,"sessions":6},{"quarter":"2009-10-01","quarter_label":"Q4 2009","corr_12m":-0.66,"sessions":7},{"quarter":"2010-01-01","quarter_label":"Q1 2010","corr_12m":-0.54,"sessions":8},{"quarter":"2010-04-01","quarter_label":"Q2 2010","corr_12m":-0.73,"sessions":7},{"quarter":"2010-07-01","quarter_label":"Q3 2010","corr_12m":-0.66,"sessions":7},{"quarter":"2010-10-01","quarter_label":"Q4 2010","corr_12m":-0.69,"sessions":9},{"quarter":"2011-01-01","quarter_label":"Q1 2011","corr_12m":-0.63,"sessions":8},{"quarter":"2011-04-01","quarter_label":"Q2 2011","corr_12m":-0.73,"sessions":8},{"quarter":"2011-07-01","quarter_label":"Q3 2011","corr_12m":-0.85,"sessions":9},{"quarter":"2011-10-01","quarter_label":"Q4 2011","corr_12m":-0.59,"sessions":9},{"quarter":"2012-01-01","quarter_label":"Q1 2012","corr_12m":-0.38,"sessions":8},{"quarter":"2012-04-01","quarter_label":"Q2 2012","corr_12m":-0.23,"sessions":8},{"quarter":"2012-07-01","quarter_label":"Q3 2012","corr_12m":0.15,"sessions":7},{"quarter":"2012-10-01","quarter_label":"Q4 2012","corr_12m":-0.21,"sessions":7},{"quarter":"2013-01-01","quarter_label":"Q1 2013","corr_12m":-0.17,"sessions":7},{"quarter":"2013-04-01","quarter_label":"Q2 2013","corr_12m":-0.13,"sessions":7},{"quarter":"2013-07-01","quarter_label":"Q3 2013","corr_12m":-0.48,"sessions":7},{"quarter":"2013-10-01","quarter_label":"Q4 2013","corr_12m":-0.52,"sessions":8},{"quarter":"2014-04-01","quarter_label":"Q2 2014","corr_12m":0.31,"sessions":5},{"quarter":"2014-07-01","quarter_label":"Q3 2014","corr_12m":-0.63,"sessions":5},{"quarter":"2014-10-01","quarter_label":"Q4 2014","corr_12m":-0.86,"sessions":6},{"quarter":"2015-04-01","quarter_label":"Q2 2015","corr_12m":-0.34,"sessions":6},{"quarter":"2015-07-01","quarter_label":"Q3 2015","corr_12m":-0.26,"sessions":6},{"quarter":"2015-10-01","quarter_label":"Q4 2015","corr_12m":-0.23,"sessions":7},{"quarter":"2016-01-01","quarter_label":"Q1 2016","corr_12m":-0.69,"sessions":8},{"quarter":"2016-04-01","quarter_label":"Q2 2016","corr_12m":-0.64,"sessions":7},{"quarter":"2016-07-01","quarter_label":"Q3 2016","corr_12m":-0.81,"sessions":8},{"quarter":"2016-10-01","quarter_label":"Q4 2016","corr_12m":-0.86,"sessions":9},{"quarter":"2017-01-01","quarter_label":"Q1 2017","corr_12m":-0.89,"sessions":8},{"quarter":"2017-04-01","quarter_label":"Q2 2017","corr_12m":-0.84,"sessions":8},{"quarter":"2017-07-01","quarter_label":"Q3 2017","corr_12m":-0.9,"sessions":8},{"quarter":"2017-10-01","quarter_label":"Q4 2017","corr_12m":-0.86,"sessions":8},{"quarter":"2018-01-01","quarter_label":"Q1 2018","corr_12m":-0.22,"sessions":8},{"quarter":"2018-04-01","quarter_label":"Q2 2018","corr_12m":-0.18,"sessions":8},{"quarter":"2018-07-01","quarter_label":"Q3 2018","corr_12m":0.06,"sessions":7},{"quarter":"2018-10-01","quarter_label":"Q4 2018","corr_12m":0.46,"sessions":7},{"quarter":"2019-01-01","quarter_label":"Q1 2019","corr_12m":-0.63,"sessions":7},{"quarter":"2019-04-01","quarter_label":"Q2 2019","corr_12m":-0.51,"sessions":7},{"quarter":"2019-07-01","quarter_label":"Q3 2019","corr_12m":-0.54,"sessions":7},{"quarter":"2019-10-01","quarter_label":"Q4 2019","corr_12m":-0.63,"sessions":8},{"quarter":"2020-04-01","quarter_label":"Q2 2020","corr_12m":-0.02,"sessions":6},{"quarter":"2020-07-01","quarter_label":"Q3 2020","corr_12m":-0.13,"sessions":6},{"quarter":"2020-10-01","quarter_label":"Q4 2020","corr_12m":-0.4,"sessions":7},{"quarter":"2021-01-01","quarter_label":"Q1 2021","corr_12m":-0.74,"sessions":8},{"quarter":"2021-04-01","quarter_label":"Q2 2021","corr_12m":-0.73,"sessions":7},{"quarter":"2021-07-01","quarter_label":"Q3 2021","corr_12m":-0.38,"sessions":7},{"quarter":"2021-10-01","quarter_label":"Q4 2021","corr_12m":-0.36,"sessions":9},{"quarter":"2022-01-01","quarter_label":"Q1 2022","corr_12m":-0.29,"sessions":8},{"quarter":"2022-04-01","quarter_label":"Q2 2022","corr_12m":-0.73,"sessions":8},{"quarter":"2022-07-01","quarter_label":"Q3 2022","corr_12m":-0.66,"sessions":9},{"quarter":"2022-10-01","quarter_label":"Q4 2022","corr_12m":-0.75,"sessions":9},{"quarter":"2023-01-01","quarter_label":"Q1 2023","corr_12m":-0.74,"sessions":8},{"quarter":"2023-04-01","quarter_label":"Q2 2023","corr_12m":-0.76,"sessions":8},{"quarter":"2023-07-01","quarter_label":"Q3 2023","corr_12m":-0.92,"sessions":8},{"quarter":"2023-10-01","quarter_label":"Q4 2023","corr_12m":-0.78,"sessions":8},{"quarter":"2024-01-01","quarter_label":"Q1 2024","corr_12m":-0.39,"sessions":8},{"quarter":"2024-04-01","quarter_label":"Q2 2024","corr_12m":-0.1,"sessions":8},{"quarter":"2024-07-01","quarter_label":"Q3 2024","corr_12m":-0.04,"sessions":8},{"quarter":"2024-10-01","quarter_label":"Q4 2024","corr_12m":-0.16,"sessions":8},{"quarter":"2025-04-01","quarter_label":"Q2 2025","corr_12m":-0.46,"sessions":5},{"quarter":"2025-07-01","quarter_label":"Q3 2025","corr_12m":-0.34,"sessions":5},{"quarter":"2025-10-01","quarter_label":"Q4 2025","corr_12m":-0.32,"sessions":6},{"quarter":"2026-04-01","quarter_label":"Q2 2026","corr_12m":0.02,"sessions":4}],"shape":"table","sql":"WITH\n    daily AS\n    (\n        SELECT\n            t.date                                                   AS d,\n            toFloat64(t.yield_10_year) - toFloat64(e.market_10_year) AS real_10y,\n            toFloat64(g.close)                                       AS gld_close\n        FROM global_markets.treasury_yields AS t\n        INNER JOIN global_markets.inflation_expectations AS e ON e.date = t.date\n        INNER JOIN\n        (\n            SELECT\n                date,\n                max(close) AS close\n            FROM global_markets.stocks_daily_aggs\n            WHERE ticker = 'GLD'\n              AND date >= '2005-01-01'\n            GROUP BY date\n        ) AS g ON g.date = t.date\n        WHERE t.date >= '2005-01-01'\n          AND t.yield_10_year > 0\n          AND e.market_10_year > 0\n    ),\n    changes AS\n    (\n        SELECT\n            d,\n            real_10y - prev_real       AS real_chg,\n            gld_close / prev_close - 1 AS gld_ret\n        FROM\n        (\n            SELECT\n                d,\n                real_10y,\n                gld_close,\n                lagInFrame(real_10y)  OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_real,\n                lagInFrame(gld_close) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_close\n            FROM daily\n        )\n        WHERE prev_close > 0\n    ),\n    quarters AS\n    (\n        SELECT DISTINCT toStartOfQuarter(d) AS q\n        FROM changes\n        WHERE d >= '2006-01-01'\n          AND addMonths(toStartOfQuarter(d), 3) <= today()\n    )\nSELECT\n    toString(qs.q)                                                     AS quarter,\n    concat('Q', toString(toQuarter(qs.q)), ' ', toString(toYear(qs.q))) AS quarter_label,\n    round(corr(c.real_chg, c.gld_ret), 2)                              AS corr_12m,\n    count()                                                            AS sessions\nFROM quarters AS qs\nCROSS JOIN changes AS c\nWHERE c.d > addMonths(qs.q, -9)\n  AND c.d < addMonths(qs.q, 3)\nGROUP BY qs.q\nORDER BY qs.q","computed_at":"2026-10-05T15:05:28.843062+00:00","elapsed":0.582049973}