Macy's (M) Gross Margin (2009 - 2026)
Macy's (M) recorded Gross Margin of 43.70% in fiscal Q2 2027 (quarter ended Aug 1, 2026), up 1.72 percentage points from 41.99% a year earlier and up 2.17 percentage points from the prior quarter.
Macy's (M) Gross Margin (2009 - 2026) Analysis & Trends
On a TTM basis, Macy's' Gross Margin came in at 40.69% as of Aug 1, 2026, up 0.38 percentage points year-over-year; for FY2026 (ended Jan 31, 2026), it was 40.33%, up 0.06 percentage points from FY2025.
- Annual Gross Margin has a five-year change of +11.16 percentage points (FY2021 to FY2026).
- Across earlier fiscal years, Gross Margin came in at 40.28% in FY2025 (-0.12 pp), 40.40% in FY2024 (+0.71 pp), 39.70% in FY2023 (-1.36 pp) and 41.06% in FY2022 (+11.89 pp).
- The fiscal Q2 2027 figure is the highest quarterly Gross Margin in data going back to fiscal Q4 2009.
- On a year-over-year basis, Gross Margin rose in three of the last eight quarters, with an average year-over-year change of +0.05 percentage points.
- Peak year-over-year performance for Gross Margin in the last five years was a gain of 8.85 percentage points in fiscal Q4 2022, against a drop of 6.48 percentage points in fiscal Q4 2023 at the low end.
- Per Business Quant, the preceding three fiscal quarters came in at 41.54% (Q1 2027), 37.51% (Q4 2026) and 41.89% (Q3 2026).
Peer Comparison
Macy's Gross Margin API
Pull this series into your own models, spreadsheets and apps with the Business Quant
Historical Metrics API. The request below matches the chart above — change the
frequency, period or values and it follows. Swap YOUR_API_KEY for your own key.
https://data.businessquant.com/historic?slug=gross-margin&ticker=M&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "gross-margin", "ticker": "M", "period": "max", "api_key": "YOUR_API_KEY"}
data = requests.get(url, params=params).json()
const res = await fetch("https://data.businessquant.com/historic?slug=gross-margin&ticker=M&period=max&api_key=YOUR_API_KEY");
const data = await res.json();