{"slug":"reg-t-margin-vs-portfolio-margin","qid":"stress_moves","label":"Worst one-session and five-session declines since January 2015","post_title":"Reg T Margin vs Portfolio Margin Explained","post_url":"/blog/reg-t-margin-vs-portfolio-margin#q-stress_moves","columns":["ticker","worst_1d_pct","worst_5d_pct"],"rows":[{"ticker":"AMD","worst_1d_pct":-24.2,"worst_5d_pct":-32.7},{"ticker":"XOM","worst_1d_pct":-12.2,"worst_5d_pct":-25.8},{"ticker":"BAC","worst_1d_pct":-15.4,"worst_5d_pct":-25.3},{"ticker":"KO","worst_1d_pct":-9.7,"worst_5d_pct":-21},{"ticker":"SPY","worst_1d_pct":-10.9,"worst_5d_pct":-18},{"ticker":"MSFT","worst_1d_pct":-14.7,"worst_5d_pct":-16.4}],"shape":"ranking","sql":"WITH moves AS\n(\n    SELECT\n        ticker,\n        toFloat64(close) AS c,\n        lagInFrame(toFloat64(close), 1) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close,\n        lagInFrame(toFloat64(close), 5) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN 5 PRECEDING AND CURRENT ROW) AS close_5d_ago\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('SPY', 'MSFT', 'AMD', 'BAC', 'KO', 'XOM')\n      AND date >= '2015-01-01'\n      AND date <  '2026-07-01'\n)\nSELECT\n    ticker,\n    round(min((c / prev_close   - 1) * 100), 1) AS worst_1d_pct,\n    round(min((c / close_5d_ago - 1) * 100), 1) AS worst_5d_pct\nFROM moves\nWHERE prev_close > 0\n  AND close_5d_ago > 0\nGROUP BY ticker\nORDER BY worst_5d_pct","computed_at":"2026-08-09T15:41:49.593011+00:00","elapsed":0.005195039}