{"slug":"did-stocks-take-25-years-to-recover","qid":"recovery_path_2007","label":"recovery_path_2007","post_title":"did-stocks-take-25-years-to-recover","post_url":"/blog/did-stocks-take-25-years-to-recover#q-recovery_path_2007","columns":["month_start","month_label","price_pct","total_return_pct"],"rows":[{"month_start":"2007-10-01","month_label":"Oct 2007","price_pct":0,"total_return_pct":0},{"month_start":"2007-11-01","month_label":"Nov 2007","price_pct":-3.9,"total_return_pct":-3.9},{"month_start":"2007-12-01","month_label":"Dec 2007","price_pct":-5.5,"total_return_pct":-5},{"month_start":"2008-01-01","month_label":"Jan 2008","price_pct":-11.2,"total_return_pct":-10.7},{"month_start":"2008-02-01","month_label":"Feb 2008","price_pct":-13.5,"total_return_pct":-13},{"month_start":"2008-03-01","month_label":"Mar 2008","price_pct":-14.7,"total_return_pct":-13.8},{"month_start":"2008-04-01","month_label":"Apr 2008","price_pct":-10.6,"total_return_pct":-9.7},{"month_start":"2008-05-01","month_label":"May 2008","price_pct":-9.2,"total_return_pct":-8.3},{"month_start":"2008-06-01","month_label":"Jun 2008","price_pct":-17.2,"total_return_pct":-16},{"month_start":"2008-07-01","month_label":"Jul 2008","price_pct":-18,"total_return_pct":-16.7},{"month_start":"2008-08-01","month_label":"Aug 2008","price_pct":-16.7,"total_return_pct":-15.5},{"month_start":"2008-09-01","month_label":"Sep 2008","price_pct":-25,"total_return_pct":-23.4},{"month_start":"2008-10-01","month_label":"Oct 2008","price_pct":-37.4,"total_return_pct":-36.1},{"month_start":"2008-11-01","month_label":"Nov 2008","price_pct":-41.7,"total_return_pct":-40.5},{"month_start":"2008-12-01","month_label":"Dec 2008","price_pct":-41.6,"total_return_pct":-39.9},{"month_start":"2009-01-01","month_label":"Jan 2009","price_pct":-46.4,"total_return_pct":-44.9},{"month_start":"2009-02-01","month_label":"Feb 2009","price_pct":-52.2,"total_return_pct":-50.8},{"month_start":"2009-03-01","month_label":"Mar 2009","price_pct":-48.6,"total_return_pct":-46.7},{"month_start":"2009-04-01","month_label":"Apr 2009","price_pct":-43.5,"total_return_pct":-41.4},{"month_start":"2009-05-01","month_label":"May 2009","price_pct":-40.2,"total_return_pct":-38},{"month_start":"2009-06-01","month_label":"Jun 2009","price_pct":-40.5,"total_return_pct":-38},{"month_start":"2009-07-01","month_label":"Jul 2009","price_pct":-36.1,"total_return_pct":-33.4},{"month_start":"2009-08-01","month_label":"Aug 2009","price_pct":-33.7,"total_return_pct":-30.9},{"month_start":"2009-09-01","month_label":"Sep 2009","price_pct":-31.7,"total_return_pct":-28.5},{"month_start":"2009-10-01","month_label":"Oct 2009","price_pct":-33,"total_return_pct":-29.9},{"month_start":"2009-11-01","month_label":"Nov 2009","price_pct":-28.9,"total_return_pct":-25.5},{"month_start":"2009-12-01","month_label":"Dec 2009","price_pct":-27.9,"total_return_pct":-24.1},{"month_start":"2010-01-01","month_label":"Jan 2010","price_pct":-30.6,"total_return_pct":-26.9},{"month_start":"2010-02-01","month_label":"Feb 2010","price_pct":-28.4,"total_return_pct":-24.6},{"month_start":"2010-03-01","month_label":"Mar 2010","price_pct":-24.3,"total_return_pct":-20},{"month_start":"2010-04-01","month_label":"Apr 2010","price_pct":-23.2,"total_return_pct":-18.8},{"month_start":"2010-05-01","month_label":"May 2010","price_pct":-29.3,"total_return_pct":-25.2},{"month_start":"2010-06-01","month_label":"Jun 2010","price_pct":-33.3,"total_return_pct":-29.1},{"month_start":"2010-07-01","month_label":"Jul 2010","price_pct":-28.7,"total_return_pct":-24.2},{"month_start":"2010-08-01","month_label":"Aug 2010","price_pct":-31.9,"total_return_pct":-27.6},{"month_start":"2010-09-01","month_label":"Sep 2010","price_pct":-26.2,"total_return_pct":-21.2},{"month_start":"2010-10-01","month_label":"Oct 2010","price_pct":-23.4,"total_return_pct":-18.2},{"month_start":"2010-11-01","month_label":"Nov 2010","price_pct":-23.4,"total_return_pct":-18.2},{"month_start":"2010-12-01","month_label":"Dec 2010","price_pct":-18.7,"total_return_pct":-12.7},{"month_start":"2011-01-01","month_label":"Jan 2011","price_pct":-16.8,"total_return_pct":-10.6},{"month_start":"2011-02-01","month_label":"Feb 2011","price_pct":-13.9,"total_return_pct":-7.5},{"month_start":"2011-03-01","month_label":"Mar 2011","price_pct":-14.3,"total_return_pct":-7.5},{"month_start":"2011-04-01","month_label":"Apr 2011","price_pct":-11.8,"total_return_pct":-4.9},{"month_start":"2011-05-01","month_label":"May 2011","price_pct":-12.8,"total_return_pct":-5.9},{"month_start":"2011-06-01","month_label":"Jun 2011","price_pct":-14.7,"total_return_pct":-7.5},{"month_start":"2011-07-01","month_label":"Jul 2011","price_pct":-16.4,"total_return_pct":-9.4},{"month_start":"2011-08-01","month_label":"Aug 2011","price_pct":-21,"total_return_pct":-14.3},{"month_start":"2011-09-01","month_label":"Sep 2011","price_pct":-26.8,"total_return_pct":-20.3},{"month_start":"2011-10-01","month_label":"Oct 2011","price_pct":-18.8,"total_return_pct":-11.6},{"month_start":"2011-11-01","month_label":"Nov 2011","price_pct":-19.2,"total_return_pct":-12},{"month_start":"2011-12-01","month_label":"Dec 2011","price_pct":-18.8,"total_return_pct":-11},{"month_start":"2012-01-01","month_label":"Jan 2012","price_pct":-15.1,"total_return_pct":-6.9},{"month_start":"2012-02-01","month_label":"Feb 2012","price_pct":-11.4,"total_return_pct":-2.9},{"month_start":"2012-03-01","month_label":"Mar 2012","price_pct":-8.9,"total_return_pct":0.3},{"month_start":"2012-04-01","month_label":"Apr 2012","price_pct":-9.6,"total_return_pct":-0.4},{"month_start":"2012-05-01","month_label":"May 2012","price_pct":-15,"total_return_pct":-6.4},{"month_start":"2012-06-01","month_label":"Jun 2012","price_pct":-12,"total_return_pct":-2.6},{"month_start":"2012-07-01","month_label":"Jul 2012","price_pct":-11,"total_return_pct":-1.4},{"month_start":"2012-08-01","month_label":"Aug 2012","price_pct":-8.7,"total_return_pct":1},{"month_start":"2012-09-01","month_label":"Sep 2012","price_pct":-6.9,"total_return_pct":3.6},{"month_start":"2012-10-01","month_label":"Oct 2012","price_pct":-8.6,"total_return_pct":1.7},{"month_start":"2012-11-01","month_label":"Nov 2012","price_pct":-8.1,"total_return_pct":2.3},{"month_start":"2012-12-01","month_label":"Dec 2012","price_pct":-7.9,"total_return_pct":3.2},{"month_start":"2013-01-01","month_label":"Jan 2013","price_pct":-3.2,"total_return_pct":8.5},{"month_start":"2013-02-01","month_label":"Feb 2013","price_pct":-2,"total_return_pct":9.9},{"month_start":"2013-03-01","month_label":"Mar 2013","price_pct":1.3,"total_return_pct":14},{"month_start":"2013-04-01","month_label":"Apr 2013","price_pct":3.3,"total_return_pct":16.2},{"month_start":"2013-05-01","month_label":"May 2013","price_pct":5.7,"total_return_pct":19},{"month_start":"2013-06-01","month_label":"Jun 2013","price_pct":3.7,"total_return_pct":17.4},{"month_start":"2013-07-01","month_label":"Jul 2013","price_pct":9.1,"total_return_pct":23.4},{"month_start":"2013-08-01","month_label":"Aug 2013","price_pct":5.8,"total_return_pct":19.7},{"month_start":"2013-09-01","month_label":"Sep 2013","price_pct":8.6,"total_return_pct":23.5},{"month_start":"2013-10-01","month_label":"Oct 2013","price_pct":13.7,"total_return_pct":29.3},{"month_start":"2013-11-01","month_label":"Nov 2013","price_pct":17,"total_return_pct":33.1},{"month_start":"2013-12-01","month_label":"Dec 2013","price_pct":19.4,"total_return_pct":36.5}],"shape":"table","sql":"WITH monthly AS\n(\n    SELECT\n        toStartOfMonth(date)           AS month,\n        argMax(toFloat64(close), date) AS month_close\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker = 'SPY'\n      AND date >= '2007-10-01'\n      AND date <  '2014-01-01'\n    GROUP BY month\n),\ndiv_cash AS\n(\n    SELECT\n        ex_dividend_date            AS ex_date,\n        max(toFloat64(cash_amount)) AS cash\n    FROM global_markets.stocks_dividends\n    WHERE ticker = 'SPY'\n      AND ex_dividend_date >= '2007-11-01'\n      AND ex_dividend_date <  '2014-01-01'\n      AND cash_amount > 0\n    GROUP BY ex_dividend_date\n),\ndiv_log AS\n(\n    SELECT\n        toStartOfMonth(c.ex_date)             AS month,\n        sum(log(1 + c.cash / p.close_on_ex))  AS log_factor\n    FROM div_cash AS c\n    INNER JOIN\n    (\n        SELECT\n            date                 AS date,\n            toFloat64(close)     AS close_on_ex\n        FROM global_markets.stocks_daily_aggs\n        WHERE ticker = 'SPY'\n          AND date >= '2007-11-01'\n          AND date <  '2014-01-01'\n    ) AS p ON p.date = c.ex_date\n    GROUP BY month\n),\npath AS\n(\n    SELECT\n        m.month                 AS month,\n        m.month_close           AS month_close,\n        ifNull(d.log_factor, 0) AS log_factor\n    FROM monthly AS m\n    LEFT JOIN div_log AS d ON d.month = m.month\n)\nSELECT\n    toString(month)                AS month_start,\n    formatDateTime(month, '%b %Y') AS month_label,\n    round(100 * (month_close\n        / first_value(month_close) OVER (ORDER BY month) - 1), 1) AS price_pct,\n    round(100 * (month_close * exp(sum(log_factor) OVER (ORDER BY month))\n        / first_value(month_close) OVER (ORDER BY month) - 1), 1) AS total_return_pct\nFROM path\nORDER BY month","computed_at":"2026-10-02T15:08:05.066795+00:00","elapsed":0.006009317}