COST margin expansion (QoQ increase) → forward 60-day returns (N=79 quarters)
Over the last 79 quarters, Costco’s stock has tended to rise more in the two months following a gross margin increase — about 1.86% versus 0.59% after no increase. That sounds like a clear edge for a company known for pricing discipline. But the math isn’t entirely on its side: the gap is wide enough to be interesting, yet narrow enough to be unreliable by conventional statistical standards.
This article digs into that question: does a quarter-over-quarter margin bump actually predict better forward returns for COST? We computed the numbers, ran the test, and found a 1.27-percentage-point difference — but with a t-stat of 1.5, it lands in the “suggestive, not conclusive” zone. The full analysis below lays out the data, the distribution, and the caveats so you can judge the evidence yourself.
For COST over the past ~3 years, does a quarter-over-quarter increase in gross margin predict above-baseline forward 60-day returns? Thesis: margin expansion signals pricing power and operational leverage, so the stock outperforms as the market reprices earnings quality.
How this was measured
Extracted quarterly gross margin = gross_profit / total_revenue from COST_fundamentals, computed quarter-over-quarter change. Approximated release date as fiscal_date_ending + 60 days (conservative, reflecting the typical reporting lag). For each quarter, anchored forward 60-trading-day return from the first trading day on/after the approximated release date. Partitioned events into margin expansion (change > 0) vs no expansion (≤ 0). Compared mean forward returns via Welch's t-test, and provided unconditional baseline 60-day return distribution across all trading days.
The key numbers
Reading the numbers
Quarters with margin expansion saw average forward 60-day returns of 1.86%, versus 0.59% for non-expansion quarters — a 1.27 percentage point gap. But the p-value of 0.14 means this difference is not statistically clear; it could easily be due to random chance.
The charts
The box plot compares the spread of forward 60-day returns between the two groups. The margin-expansion group has a higher average (1.86%) and hits a maximum of 26.84%, while the no-expansion group's returns dip into negative territory as low as -5.28%. However, the boxes overlap considerably, which suggests that expansion alone doesn't guarantee above-average returns.
This scatter plot plots each quarter's gross margin change against its subsequent 60-day return. The points scatter widely across both axes, with no clear upward or downward slope, indicating that the size of the margin change does not strongly predict the return. Even though the expansion group averaged a higher return, individual quarters vary far too much to rely on margin shifts as a signal.
The bar chart puts the average returns side by side: 1.86% for expansion quarters, 0.59% for no expansion, and a baseline of 0%. While expansion beats both, the difference versus no expansion is only about 1.3 percentage points, and the statistical test shows this gap isn't reliable. In plain terms, the data hints at a positive effect but doesn't give enough confidence to act on it.
Quarter-by-quarter events (sorted by fiscal_date_ending)
| fiscal_date_ending | gross_margin | qoq_change | expansion_flag | anchor_date | fwd_60d_return |
|---|---|---|---|---|---|
| 2006-05-31 | 0.1234 | -0.0012 | No Expansion | 2023-06-30 | 0.0037 |
| 2006-08-31 | 0.1216 | -0.0018 | No Expansion | 2023-06-30 | 0.0037 |
| 2006-11-30 | 0.1246 | 0.0029 | Expansion | 2023-06-30 | 0.0037 |
| 2007-02-28 | 0.1231 | -0.0015 | No Expansion | 2023-06-30 | 0.0037 |
| 2007-05-31 | 0.1215 | -0.0016 | No Expansion | 2023-06-30 | 0.0037 |
| 2007-08-31 | 0.1243 | 0.0028 | Expansion | 2023-06-30 | 0.0037 |
| 2007-11-30 | 0.1256 | 0.0013 | Expansion | 2023-06-30 | 0.0037 |
| 2008-02-29 | 0.1254 | -0.0002 | No Expansion | 2023-06-30 | 0.0037 |
| 2008-05-31 | 0.1243 | -0.0011 | No Expansion | 2023-06-30 | 0.0037 |
| 2008-08-31 | 0.1213 | -0.003 | No Expansion | 2023-06-30 | 0.0037 |
| 2008-11-30 | 0.1292 | 0.008 | Expansion | 2023-06-30 | 0.0037 |
| 2009-02-28 | 0.123 | -0.0062 | No Expansion | 2023-06-30 | 0.0037 |
| 2009-05-31 | 0.1284 | 0.0054 | Expansion | 2023-06-30 | 0.0037 |
| 2009-08-31 | 0.1281 | -0.0004 | No Expansion | 2023-06-30 | 0.0037 |
| 2009-11-30 | 0.1282 | 0.0001 | Expansion | 2023-06-30 | 0.0037 |
| 2010-02-28 | 0.1252 | -0.003 | No Expansion | 2023-06-30 | 0.0037 |
| 2010-05-31 | 0.1286 | 0.0034 | Expansion | 2023-06-30 | 0.0037 |
| 2010-08-31 | 0.1285 | 0 | No Expansion | 2023-06-30 | 0.0037 |
| 2010-11-30 | 0.129 | 0.0005 | Expansion | 2023-06-30 | 0.0037 |
| 2011-02-28 | 0.1265 | -0.0025 | No Expansion | 2023-06-30 | 0.0037 |
| 2011-05-31 | 0.1239 | -0.0025 | No Expansion | 2023-06-30 | 0.0037 |
| 2011-08-31 | 0.1241 | 0.0002 | Expansion | 2023-06-30 | 0.0037 |
| 2011-11-30 | 0.1247 | 0.0006 | Expansion | 2023-06-30 | 0.0037 |
| 2012-02-29 | 0.1231 | -0.0016 | No Expansion | 2023-06-30 | 0.0037 |
| 2012-05-31 | 0.1246 | 0.0014 | Expansion | 2023-06-30 | 0.0037 |
| 2012-08-31 | 0.1244 | -0.0002 | No Expansion | 2023-06-30 | 0.0037 |
| 2012-11-30 | 0.126 | 0.0016 | Expansion | 2023-06-30 | 0.0037 |
| 2013-02-28 | 0.1248 | -0.0012 | No Expansion | 2023-06-30 | 0.0037 |
| 2013-05-31 | 0.1264 | 0.0016 | Expansion | 2023-06-30 | 0.0037 |
| 2013-08-31 | 0.1253 | -0.0012 | No Expansion | 2023-06-30 | 0.0037 |
| 2013-11-30 | 0.1276 | 0.0024 | Expansion | 2023-06-30 | 0.0037 |
| 2014-02-28 | 0.124 | -0.0036 | No Expansion | 2023-06-30 | 0.0037 |
| 2014-05-31 | 0.1256 | 0.0016 | Expansion | 2023-06-30 | 0.0037 |
| 2014-08-31 | 0.1263 | 0.0007 | Expansion | 2023-06-30 | 0.0037 |
| 2014-11-30 | 0.1296 | 0.0033 | Expansion | 2023-06-30 | 0.0037 |
| 2015-02-28 | 0.1296 | 0 | No Expansion | 2023-06-30 | 0.0037 |
| 2015-05-31 | 0.1308 | 0.0012 | Expansion | 2023-06-30 | 0.0037 |
| 2015-08-31 | 0.1309 | 0.0001 | Expansion | 2023-06-30 | 0.0037 |
| 2015-11-30 | 0.1322 | 0.0014 | Expansion | 2023-06-30 | 0.0037 |
| 2016-02-29 | 0.1314 | -0.0008 | No Expansion | 2023-06-30 | 0.0037 |
| 2016-05-31 | 0.1347 | 0.0034 | Expansion | 2023-06-30 | 0.0037 |
| 2016-08-31 | 0.1343 | -0.0004 | No Expansion | 2023-06-30 | 0.0037 |
| 2016-11-30 | 0.1356 | 0.0013 | Expansion | 2023-06-30 | 0.0037 |
| 2017-02-28 | 0.129 | -0.0067 | No Expansion | 2023-06-30 | 0.0037 |
| 2017-05-31 | 0.1348 | 0.0058 | Expansion | 2023-06-30 | 0.0037 |
| 2017-08-31 | 0.1325 | -0.0023 | No Expansion | 2023-06-30 | 0.0037 |
| 2017-11-30 | 0.1318 | -0.0007 | No Expansion | 2023-06-30 | 0.0037 |
| 2018-02-28 | 0.1292 | -0.0026 | No Expansion | 2023-06-30 | 0.0037 |
| 2018-05-31 | 0.1307 | 0.0015 | Expansion | 2023-06-30 | 0.0037 |
| 2018-08-31 | 0.1292 | -0.0015 | No Expansion | 2023-06-30 | 0.0037 |
| 2018-11-30 | 0.1268 | -0.0025 | No Expansion | 2023-06-30 | 0.0037 |
| 2019-02-28 | 0.1321 | 0.0053 | Expansion | 2023-06-30 | 0.0037 |
| 2019-05-31 | 0.1297 | -0.0024 | No Expansion | 2023-06-30 | 0.0037 |
| 2019-08-31 | 0.1303 | 0.0005 | Expansion | 2023-06-30 | 0.0037 |
| 2019-11-30 | 0.1298 | -0.0005 | No Expansion | 2023-06-30 | 0.0037 |
| 2020-02-29 | 0.1284 | -0.0014 | No Expansion | 2023-06-30 | 0.0037 |
| 2020-05-31 | 0.1346 | 0.0062 | Expansion | 2023-06-30 | 0.0037 |
| 2020-08-31 | 0.1308 | -0.0038 | No Expansion | 2023-06-30 | 0.0037 |
| 2020-11-30 | 0.1331 | 0.0023 | Expansion | 2023-06-30 | 0.0037 |
| 2021-02-28 | 0.1271 | -0.006 | No Expansion | 2023-06-30 | 0.0037 |
| 2021-05-31 | 0.1295 | 0.0024 | Expansion | 2023-06-30 | 0.0037 |
| 2021-08-31 | 0.1267 | -0.0028 | No Expansion | 2023-06-30 | 0.0037 |
| 2021-11-30 | 0.1273 | 0.0006 | Expansion | 2023-06-30 | 0.0037 |
| 2022-02-28 | 0.1231 | -0.0042 | No Expansion | 2023-06-30 | 0.0037 |
| 2022-05-31 | 0.1187 | -0.0044 | No Expansion | 2023-06-30 | 0.0037 |
| 2022-08-31 | 0.1184 | -0.0003 | No Expansion | 2023-06-30 | 0.0037 |
| 2022-11-30 | 0.1225 | 0.0041 | Expansion | 2023-06-30 | 0.0037 |
| 2023-02-28 | 0.1238 | 0.0013 | Expansion | 2023-06-30 | 0.0037 |
| 2023-05-31 | 0.1207 | -0.0032 | No Expansion | 2023-07-31 | -0.0147 |
| 2023-08-31 | 0.1231 | 0.0025 | Expansion | 2023-10-30 | 0.2684 |
| 2023-11-30 | 0.127 | 0.0039 | Expansion | 2024-01-29 | 0.0471 |
| 2024-02-29 | 0.1249 | -0.0021 | No Expansion | 2024-04-29 | 0.1259 |
| 2024-05-31 | 0.1255 | 0.0005 | Expansion | 2024-07-30 | 0.1088 |
| 2024-08-31 | 0.1268 | 0.0014 | Expansion | 2024-10-30 | 0.098 |
| 2024-11-30 | 0.1294 | 0.0026 | Expansion | 2025-01-29 | 0.0107 |
| 2025-02-28 | 0.1252 | -0.0042 | No Expansion | 2025-04-29 | -0.0528 |
| 2025-05-31 | 0.1299 | 0.0047 | Expansion | 2025-07-30 | 0.0188 |
| 2025-08-31 | 0.1291 | -0.0008 | No Expansion | 2025-10-30 | 0.0445 |
| 2025-11-30 | 0.1307 | 0.0016 | Expansion | 2026-01-29 | 0.0549 |
The takeaway
Over the past 79 quarters, COST's forward 60-day returns averaged 1.86% after a quarter-over-quarter gross margin increase versus 0.59% after no increase — a 1.27-point edge. The unconditional baseline over all 60-day windows was exactly zero, so both groups beat the market's typical flat performance. However, the gap is not statistically reliable: there's roughly a 14-in-100 chance this difference is just random noise, well above the usual 5% threshold. So while the direction aligns with the thesis that margin expansion signals pricing power, the evidence is suggestive at best, not conclusive. The practical takeaway: there may be a mild tailwind after margin improvements, but it's not a trade-worthy signal on its own.
The fine print
- Release date approximated as fiscal date plus 60 days; actual reports often arrive earlier, shifting the trade window.
- Forward 60-day windows from consecutive quarters overlap heavily, reducing the number of truly independent events.
- Single-stock analysis on COST — the pattern may not hold for other retailers or sectors.
- Small quarter-over-quarter margin changes may reflect accounting noise rather than genuine pricing power.