Stocks · Industrials · Engineering & Construction
Tetra Tech, Inc. TTEK
$33.12 -1.78% Close, Oct 2, 2026 · NASDAQ · Market cap $8.60B
Strong growthInexpensive vs sectorLow risk
Next earnings report: Nov 11, 2026
Scroll or pinch to zoom, drag to move. Daily prices adjusted for splits. Markers: E = earnings (green beat, red miss), S = split, D = dividend.
Three things to know
- Diluted EPS over the last four quarters was $1.66, up 106.8% year over year.
- The shares trade at 20.0× trailing earnings, lower than 95% of the company's own readings over the past five years.
- Earnings beat analyst estimates in each of the last 7 quarters (average surprise over the last four: +10.0%).
PromtFinance scores
Each score is a percentile within the Industrials sector (0–100). Under each score: how the stock ranks in its sector on every component. As of Oct 5, 2026.
How fast revenue, earnings and cash flow are growing.
- Revenue growth (TTM, YoY)Top 41%
- EPS growth (TTM, YoY)Top 12%
- FCF growth (TTM, YoY)Top 40%
- Revenue growth, 3-year CAGRTop 11%
- Revenue growth accelerationTop 40%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 14%
- Gross marginBottom 26%
- Operating marginTop 30%
- Cash conversion (OCF / net income)Bottom 36%
- Accruals (lower is better)Bottom 38%
- Net debt / EBITDA (lower is better)Top 38%
- Interest coverTop 7%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldTop 19%
- Free-cash-flow yieldTop 22%
- EBITDA / enterprise valueTop 39%
- Sales / enterprise valueTop 45%
- P/E vs own 5-year history (lower is better)Top 12%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthBottom 49%
- 6-month returnTop 46%
- 1-year return vs S&P 500Bottom 42%
- Distance from 52-week highTop 45%
- Trend checklist (0–4)Top 42%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 37%
- Consecutive EPS beatsTop 17%
- Share of analysts rating BuyBottom 22%
- Upside to consensus price targetBottom 20%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Top 17%
- Maximum drawdown, 3 yearsTop 46%
- Beta vs S&P 500 (lower is better)Top 7%
- Net debt / EBITDA (lower is better)Top 38%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 7.9% | 10.2% | ↑ |
| EPS growth (YoY) | 141.0% | 106.8% | ↓ |
| Gross margin | 20.3% | 18.8% | ↓ |
| Operating margin | 8.1% | 11.9% | ↑ |
| FCF margin | 9.6% | 10.8% | ↑ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 10.2% | 7.9% | ↑ | Top 41% |
| EPS growth (TTM, YoY) | 106.8% | 141.0% | ↓ | Top 12% |
| Gross margin | 18.8% | 20.3% | ↓ | Bottom 26% |
| Operating margin | 11.9% | 8.1% | ↑ | Top 30% |
| Net margin | 8.6% | 4.7% | ↑ | — |
| Free-cash-flow margin | 10.8% | 9.6% | ↑ | — |
| Return on invested capital | 14.1% | — | Top 14% | |
| Revenue growth, 3-year CAGR | 24.3% | — | Top 11% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 1.30×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -3.0%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- -1.9%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- -25.5 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 1.19×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 38.6×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 0.81%
- Net buyback yield (TTM)
- 2.92%
- Shareholder yield
- 3.73%
- Share count change, 1 year
- -3.1%
- Share count change, 3-year CAGR
- -1.1%
Shareholder yield = dividends + net buybacks over the last four quarters, divided by market cap.
Based on the four quarters through Jun 28, 2026 (filed Jul 31, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 7
- Beats in the last 8 reports
- 7 of 8
- Average EPS surprise, last 4
- +10.0%
- Average 2-day reaction, last 8
- -0.2%
- Positive 20 days after report
- 3 of 8
Analysts
- Consensus price target
- $37.00
- Target vs current price
- +11.7%
- Analysts with a rating
- 26
- Share rating Buy or Strong Buy
- 38%
- Consensus rating
- Hold
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Jul 29, 2026 | +5.9% | +0.8% | +4.5% | +9.8% | — |
| Apr 29, 2026 | +9.7% | +1.6% | +0.9% | -11.0% | +1.1% |
| Jan 28, 2026 | +12.9% | -0.6% | +4.5% | -10.5% | -16.1% |
| Nov 12, 2025 | +11.6% | +1.4% | +11.4% | +6.0% | +31.6% |
| Jul 30, 2025 | +16.2% | -1.1% | -0.5% | -1.9% | -12.0% |
| May 7, 2025 | +9.4% | +1.0% | +14.6% | +15.5% | +17.4% |
| Jan 29, 2025 | +2.9% | -2.8% | -10.9% | -23.5% | -18.8% |
| Nov 13, 2024 | -5.4% | -1.9% | -15.6% | -12.5% | -33.2% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Jul 29, 2026 | $0.42 | $0.40 | +5.9% | $1.11B |
| Apr 29, 2026 | $0.34 | $0.31 | +9.7% | $1.05B |
| Jan 28, 2026 | $0.35 | $0.31 | +12.9% | $1.04B |
| Nov 12, 2025 | $0.45 | $0.40 | +11.6% | $1.33B |
| Jul 30, 2025 | $0.43 | $0.37 | +16.2% | $1.37B |
| May 7, 2025 | $0.33 | $0.30 | +9.4% | $1.32B |
| Jan 29, 2025 | $0.35 | $0.34 | +2.9% | $1.42B |
| Nov 13, 2024 | $0.35 | $0.37 | -5.4% | $1.37B |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 20.0× | 33.1× | 5th | Top 19% |
| P/E (forward) | 21.0× | — | — | — |
| EV / EBITDA | 14.1× | — | — | Top 39% |
| EV / Sales | 1.85× | — | — | Top 45% |
| Free-cash-flow yield | 6.38% | — | — | Top 22% |
| Earnings yield | 5.01% | — | — | Top 19% |
P/E over the past five years
Range 19.0× – 50.3× since Jun 27, 2021. Each point: price on the filing date divided by trailing-twelve-month EPS known then.
What moved the stock over the past year
- Price return, 1 year
- -0.2%
- Earnings per share growth (TTM)
- +106.8%
- Change in P/E multiple
- -55.3%
Most of the move came from a change in the valuation multiple.
Technical state
Trend checklist
- ✗ Price above 20-day average
- ✗ Price above 50-day average
- ✓ Price above 200-day average
- ✓ 50-day average above 200-day
- ✗ MACD histogram positive
Trend quality
- Days above the 50-day average
- 0
- Days above the 200-day average
- 2
- 50-day average slope (20 days)
- +5.5%
- 200-day average slope (20 days)
- +0.2%
- Distance from 50-day average
- -5.9%
- Distance from 200-day average
- +0.3%
- RSI (14)
- 35.4
- Relative volume
- 0.91×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 27.6%
- Volatility vs own 5-year history
- 38th percentile · Normal for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.42
- Correlation with S&P 500
- 0.19
- Current drawdown from 1-year high
- -22.3%
- Maximum drawdown, 3 years
- -48.2%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Oct 29, 2024 | May 15, 2026 | -48.2% | 386 days | Not yet recovered |
| Nov 23, 2021 | Jun 16, 2022 | -37.3% | 141 days | 450 days (Apr 3, 2024) |
| Apr 12, 2021 | Jun 18, 2021 | -19.2% | 48 days | 51 days (Aug 31, 2021) |
| Jan 22, 2021 | Jan 29, 2021 | -14.6% | 5 days | 14 days (Feb 19, 2021) |
| Feb 19, 2021 | Mar 4, 2021 | -12.4% | 9 days | 26 days (Apr 12, 2021) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $8.60B
- P/E (TTM)
- 20.0
- EPS, diluted (TTM)
- $1.66
- Revenue (TTM)
- $5.07B
- Dividend yield
- 0.83%
- 52-week range
- $25.81 – $43.14
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $3.21B | $2.84B | $4.52B | $5.20B | $5.44B |
| Gross profit | $498.4M | $575.6M | $725.0M | $866.4M | $961.3M |
| Operating income | $278.7M | $340.4M | $358.1M | $500.7M | $606.1M |
| Net income | $232.8M | $263.1M | $273.4M | $333.4M | $247.7M |
| EPS (diluted) | $0.85 | $0.97 | $1.02 | $1.23 | $0.93 |
| Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | Q3 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $1.14B | $1.20B | $1.10B | $1.15B | $1.33B | $1.21B | $1.22B | $1.31B |
| Net income | $96.2M | $747,000 | $5.4M | $113.8M | $127.7M | $105.2M | $93.6M | $109.6M |
| EPS (diluted) | $0.35 | $0.00 | $0.02 | $0.43 | $0.48 | $0.40 | $0.36 | $0.42 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $304.4M | $336.2M | $368.5M | $358.7M | $457.7M |
| Capital expenditure | -$8.6M | -$10.6M | -$26.9M | -$18.1M | -$18.6M |
| Free cash flow | $295.8M | $325.6M | $341.6M | $340.6M | $439.1M |
| Dividends paid | -$40.0M | -$46.1M | -$52.1M | -$58.8M | -$65.0M |
| Net share buybacks | -$60.0M | -$200.0M | $626,000 | $3.1M | -$249.5M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $230.8M
- Total assets
- $4.39B
- Total liabilities
- $2.54B
- Total debt
- $1.02B
- Net debt
- $792.7M
- Shareholders’ equity
- $1.85B
As of Jun 28, 2026 (filed Jul 31, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Aug 13, 2026 | $0.07 | Aug 27, 2026 |
| May 14, 2026 | $0.07 | Jun 2, 2026 |
| Feb 12, 2026 | $0.07 | Feb 27, 2026 |
| Dec 1, 2025 | $0.07 | Dec 12, 2025 |
| Aug 15, 2025 | $0.07 | Aug 29, 2025 |
| May 23, 2025 | $0.07 | Jun 5, 2025 |
| Feb 12, 2025 | $0.06 | Feb 26, 2025 |
| Nov 27, 2024 | $0.06 | Dec 13, 2024 |
Short interest
- Shares sold short
- 11,089,741
- Days to cover
- 6.10
- Change vs previous report
- +3.9%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Sep 9, 2024
- 5-for-1
- Dec 18, 2001
- 5-for-4
- Jun 16, 1999
- 5-for-4
- Sep 16, 1998
- 5-for-4
- Dec 2, 1997
- 5-for-4