Vulcan Materials (VMC) Gross Margin (2009 - 2026)
Vulcan Materials (VMC) posted Gross Margin of 29.01% for Q2 2026, down 0.72 percentage points from 29.74% a year earlier but up 4.94 percentage points from the prior quarter.
Vulcan Materials (VMC) Gross Margin (2009 - 2026) Analysis & Trends
For the trailing twelve months through Jun 30, 2026, Gross Margin at Vulcan Materials was 27.51%, down 0.05 percentage points year-over-year; for FY2025, it came in at 27.38%, up 0.43 percentage points from FY2024.
- Annual Gross Margin has increased for three consecutive years, with a five-year change of +1.00 percentage points (FY2020 to FY2025).
- In prior years, Vulcan Materials' Gross Margin was 26.96% in FY2024 (+1.92 pp), 25.04% in FY2023 (+3.74 pp), 21.29% in FY2022 (-3.44 pp) and 24.74% in FY2021 (-1.65 pp).
- Quarterly Gross Margin has run from a low of 17.45% in Q1 2022 to a high of 30.43% in Q3 2025 over five years.
- On a year-over-year basis, Gross Margin increased in six of the last eight quarters, with an average year-over-year change of +0.88 percentage points.
- The strongest year-over-year quarter for Gross Margin in the past five years was Q4 2023, with a gain of 5.54 percentage points; the weakest was Q2 2022, with a drop of 6.44 percentage points.
- According to Business Quant data, Gross Margin for the three prior quarters was 24.07% (Q1 2026), 25.46% (Q4 2025) and 30.43% (Q3 2025).
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Gross Margin (Qtr) |
|---|---|---|---|---|---|
| 1 | Crh Public | 56.29 Bn | 42.80 Bn | 4.29 Bn | 39.84% |
| 2 | Vulcan Materials | 31.41 Bn | 30.73 Bn | 625.50 Mn | 29.01% |
| 3 | Martin Marietta Materials | 28.77 Bn | 28.26 Bn | 495.00 Mn | 25.42% |
| 4 | Amrize | 20.73 Bn | 16.15 Bn | 993.00 Mn | 28.42% |
| 5 | Cemex Sab De Cv | 14.02 Bn | 14.02 Bn | 1.62 Bn | 35.22% |
| 6 | Eagle Materials | 5.34 Bn | 4.36 Bn | 161.25 Mn | 24.77% |
| 7 | Knife River | 2.99 Bn | 2.61 Bn | 162.77 Mn | 17.34% |
| 8 | Titan America | 2.53 Bn | 2.02 Bn | 113.15 Mn | 24.04% |
| 9 | Loma Negra Compania Industrial Argentina Sociedad Anonima | 1.07 Bn | -45.51 Bn | - | - |
| 10 | Cementos Pacasmayo Saa | 1.03 Bn | 359.11 Mn | 221.13 Mn | - |
Historic Data
| Date | Value |
|---|---|
| Jun 30, 2026 | 29.01% |
| Mar 31, 2026 | 24.07% |
| Dec 31, 2025 | 25.46% |
| Sep 30, 2025 | 30.43% |
| Jun 30, 2025 | 29.74% |
| Mar 31, 2025 | 22.35% |
| Dec 31, 2024 | 28.98% |
| Sep 30, 2024 | 28.21% |
| Jun 30, 2024 | 29.40% |
| Mar 31, 2024 | 19.73% |
| Dec 31, 2023 | 25.74% |
| Sep 30, 2023 | 27.04% |
| Jun 30, 2023 | 27.61% |
| Mar 31, 2023 | 18.31% |
| Dec 31, 2022 | 20.20% |
| Sep 30, 2022 | 23.60% |
| Jun 30, 2022 | 22.83% |
| Mar 31, 2022 | 17.45% |
| Dec 31, 2021 | 21.90% |
| Sep 30, 2021 | 25.99% |
Vulcan Materials 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=VMC&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "gross-margin", "ticker": "VMC", "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=VMC&period=max&api_key=YOUR_API_KEY");
const data = await res.json();