TAL Education (TAL) Gross Margin (2009 - 2029)
TAL Education's (TAL) quarterly Gross Margin came in at 52.92% in Q1 2029, up 88.0% on a YoY basis from 28.15% in Q1 2028, and up 1.68% quarter-over-quarter from 52.04% in Q1 2028.
TAL Education (TAL) Gross Margin (2009 - 2029) Analysis & Trends
TAL Education (TAL) has reported Gross Margin for 20 consecutive years, with 52.92% the latest figure, recorded in Q1 2029.
- For the quarter ending Q1 2029, Gross Margin rose 88.0% year-over-year to 52.92%; the trailing twelve-month figure through Feb 2029 stood at 54.23% (down 67.0% YoY), and the FY2029 full-year result was 54.09%, up 75.0% from the prior year.
- Gross Margin climbed to 52.92% in Q1 2029 per TAL's latest filing, from 52.04% in the prior quarter.
- Across five years, Gross Margin topped out at 57.78% in Q2 2026 and bottomed at 52.04% in Q1 2025.
- Historically, Gross Margin has averaged 54.5% across 4 years, with a median of 54.05% in 2026.
- The widest YoY moves for Gross Margin: up 334 bps in 2025, down 88 bps in 2025.
- Over 4 years, Gross Margin stood at 56.07% in 2025, then increased by 3 bps to 57.78% in 2026, then fell by 10 bps to 52.04% in 2028, then rose by 2 bps to 52.92% in 2029.
- According to Business Quant data, Gross Margin over the past three periods registered 52.92%, 52.04%, and 57.78% for Q1 2029, Q1 2028, and Q2 2026 respectively.
Peer Comparison
| # | Company | Market Cap | Enterprise Value | Gross Profit (Qtr) | Gross Margin (Qtr) |
|---|---|---|---|---|---|
| 1 | Service Corp International | 10.64 Bn | 10.38 Bn | 273.50 Mn | 24.79% |
| 2 | New Oriental Education & Technology | 8.69 Bn | 6.29 Bn | -19,600.00 | 0.00% |
| 3 | Laureate Education | 5.06 Bn | 4.90 Bn | 237.67 Mn | 38.59% |
| 4 | Graham Holdings | 4.89 Bn | 3.68 Bn | 777.03 Mn | 59.66% |
| 5 | Covista | 4.19 Bn | 3.78 Bn | 284.63 Mn | 56.77% |
| 6 | Valvoline | 3.67 Bn | 3.58 Bn | 214.90 Mn | 39.46% |
| 7 | Bright Horizons Family Solutions | 3.28 Bn | 3.11 Bn | 188.96 Mn | 24.25% |
| 8 | Stride | 3.26 Bn | 2.30 Bn | 217.28 Mn | 34.16% |
| 9 | TAL Education | 2.28 Bn | -596.06 Mn | 438.20 Mn | 57.78% |
| 10 | Onespaworld Holdings | 2.26 Bn | 2.22 Bn | 84.35 Mn | 32.29% |
Historic Data
| Date | Value |
|---|---|
| Feb 28, 2029 | 52.92% |
| Feb 29, 2028 | 52.04% |
| May 31, 2026 | 57.78% |
| Feb 28, 2026 | 53.24% |
| Nov 30, 2025 | 56.07% |
| Aug 31, 2025 | 57.00% |
| May 31, 2025 | 54.86% |
| Feb 28, 2025 | 52.04% |
| Nov 30, 2024 | 52.73% |
| Aug 31, 2024 | 56.30% |
| May 31, 2024 | 51.71% |
| Feb 29, 2024 | 52.92% |
| Nov 30, 2023 | 53.63% |
| Aug 31, 2023 | 58.88% |
| May 31, 2023 | 49.35% |
| Feb 28, 2023 | 52.52% |
| Nov 30, 2022 | 55.75% |
| Aug 31, 2022 | 60.17% |
| May 31, 2022 | 60.47% |
| Feb 28, 2022 | 63.40% |
TAL Education 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=TAL&period=max&api_key=YOUR_API_KEY
import requests
url = "https://data.businessquant.com/historic"
params = {"slug": "gross-margin", "ticker": "TAL", "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=TAL&period=max&api_key=YOUR_API_KEY");
const data = await res.json();