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
- At 17.7× trailing earnings, the shares trade at the lowest P/E of the company's past five years.
- The stock is in a downtrend: below its 200-day average, with the 50-day average below the 200-day.
- The stock is 50% below its highest close of the past year.
PromtFinance scores
Each score is a percentile within the Energy 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)Bottom 28%
- EPS growth (TTM, YoY)Bottom 39%
- FCF growth (TTM, YoY)Bottom 20%
- Revenue growth, 3-year CAGRTop 46%
- Revenue growth accelerationBottom 27%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalBottom 48%
- Gross marginBottom 27%
- Operating marginBottom 39%
- Cash conversion (OCF / net income)Bottom 22%
- Accruals (lower is better)Bottom 14%
- Net debt / EBITDA (lower is better)Bottom 35%
- Interest coverTop 48%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldTop 40%
- Free-cash-flow yieldBottom 39%
- EBITDA / enterprise valueBottom 48%
- Sales / enterprise valueTop 22%
- P/E vs own 5-year history (lower is better)Top 3%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthBottom 23%
- 6-month returnBottom 7%
- 1-year return vs S&P 500Bottom 16%
- Distance from 52-week highBottom 12%
- Trend checklist (0–4)Bottom 18%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 40%
- Consecutive EPS beatsTop 50%
- Share of analysts rating BuyBottom 32%
- Upside to consensus price targetTop 6%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Bottom 45%
- Maximum drawdown, 3 yearsBottom 32%
- Beta vs S&P 500 (lower is better)Bottom 11%
- Net debt / EBITDA (lower is better)Bottom 35%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 1.3% | 0.3% | ↓ |
| EPS growth (YoY) | 8.9% | -10.6% | ↓ |
| Gross margin | 16.7% | 18.1% | ↑ |
| Operating margin | 10.4% | 9.3% | ↓ |
| FCF margin | 7.6% | 2.1% | ↓ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 0.3% | 1.3% | ↓ | Bottom 28% |
| EPS growth (TTM, YoY) | -10.6% | 8.9% | ↓ | Bottom 39% |
| Gross margin | 18.1% | 16.7% | ↑ | Bottom 27% |
| Operating margin | 9.3% | 10.4% | ↓ | Bottom 39% |
| Net margin | 4.7% | 5.7% | ↓ | — |
| Free-cash-flow margin | 2.1% | 7.6% | ↓ | — |
| Return on invested capital | 6.5% | — | Bottom 48% | |
| Revenue growth, 3-year CAGR | 2.4% | — | Top 46% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 1.16×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -0.7%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 1.6%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- -9.6 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 2.27×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 4.4×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 0.40%
- Net buyback yield (TTM)
- 3.14%
- Shareholder yield
- 3.54%
- Share count change, 1 year
- -1.3%
- Share count change, 3-year CAGR
- -0.4%
Shareholder yield = dividends + net buybacks over the last four quarters, divided by market cap.
Based on the four quarters through Jun 30, 2026 (filed Jul 30, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 1
- Beats in the last 8 reports
- 5 of 8
- Average EPS surprise, last 4
- +13.1%
- Average 2-day reaction, last 8
- +0.6%
- Positive 20 days after report
- 3 of 8
Analysts
- Consensus price target
- $21.00
- Target vs current price
- +111.7%
- Analysts with a rating
- 37
- Share rating Buy or Strong Buy
- 43%
- 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 | +26.6% | -7.7% | +5.0% | +12.8% | — |
| Apr 29, 2026 | +0.0% | +3.2% | -15.1% | -16.4% | -30.4% |
| Feb 4, 2026 | +9.8% | -0.2% | -5.1% | -15.8% | -25.4% |
| Oct 22, 2025 | +15.8% | +6.1% | +36.8% | +27.2% | +61.4% |
| Jul 23, 2025 | +5.6% | +7.2% | -1.6% | -11.4% | +0.8% |
| Apr 23, 2025 | -6.7% | -3.0% | -5.8% | -8.0% | -8.4% |
| Jan 29, 2025 | -4.3% | +0.1% | -7.0% | -19.1% | -37.3% |
| Oct 23, 2024 | +8.7% | -1.0% | +13.0% | +14.8% | +17.9% |
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.11 | $0.09 | +26.6% | $124.6M |
| Apr 29, 2026 | $0.06 | $0.06 | +0.0% | $121.8M |
| Feb 4, 2026 | $0.21 | $0.19 | +9.8% | $138.3M |
| Oct 22, 2025 | $0.22 | $0.19 | +15.8% | $134.5M |
| Jul 23, 2025 | $0.19 | $0.18 | +5.6% | $130.2M |
| Apr 23, 2025 | $0.14 | $0.15 | -6.7% | $123.6M |
| Jan 29, 2025 | $0.22 | $0.23 | -4.3% | $129.2M |
| Oct 23, 2024 | $0.25 | $0.23 | +8.7% | $134.4M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 17.7× | 29.6× | 0th | Top 40% |
| P/E (forward) | 20.6× | — | — | — |
| EV / EBITDA | 9.6× | — | — | Bottom 48% |
| EV / Sales | 1.16× | — | — | Top 22% |
| Free-cash-flow yield | 2.35% | — | — | Bottom 39% |
| Earnings yield | 5.65% | — | — | Top 40% |
P/E over the past five years
Range 18.5× – 125.8× since Jun 30, 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
- -21.1%
- Earnings per share growth (TTM)
- -10.6%
- Change in P/E multiple
- -1.3%
Most of the move came from earnings growth.
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
- 0
- 50-day average slope (20 days)
- -0.4%
- 200-day average slope (20 days)
- -3.0%
- Distance from 50-day average
- -14.3%
- Distance from 200-day average
- -32.0%
- RSI (14)
- 25.1
- Relative volume
- 1.05×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 41.9%
- Volatility vs own 5-year history
- 20th percentile · Low for this stock
- Beta vs S&P 500 (2 years, weekly)
- 1.23
- Correlation with S&P 500
- 0.31
- Current drawdown from 1-year high
- -49.6%
- Maximum drawdown, 3 years
- -60.5%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Jun 10, 2021 | Sep 30, 2026 | -79.9% | 1332 days | Not yet recovered |
| Mar 10, 2021 | Apr 20, 2021 | -36.6% | 28 days | 28 days (May 28, 2021) |
| Dec 10, 2020 | Dec 18, 2020 | -16.4% | 6 days | 10 days (Jan 5, 2021) |
| Oct 8, 2020 | Oct 28, 2020 | -16.2% | 14 days | 8 days (Nov 9, 2020) |
| Sep 28, 2020 | Oct 1, 2020 | -10.7% | 3 days | 4 days (Oct 7, 2020) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $457.3M
- P/E (TTM)
- 17.7
- EPS, diluted (TTM)
- $0.56
- Revenue (TTM)
- $519.2M
- Dividend yield
- 0.40%
- 52-week range
- $9.63 – $20.36
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $470.3M | $489.7M | $509.8M | $523.8M | $526.5M |
| Gross profit | $83.8M | $78.9M | $94.0M | $88.4M | $94.3M |
| Operating income | $45.3M | $41.5M | $54.6M | $58.6M | $50.5M |
| Net income | $19.7M | $19.5M | $36.7M | $31.4M | $29.7M |
| EPS (diluted) | $0.42 | $0.42 | $0.77 | $0.66 | $0.68 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $134.4M | $129.2M | $123.6M | $130.2M | $134.5M | $138.3M | $121.8M | $124.6M |
| Net income | $11.7M | $7.4M | -$154,000 | $10.6M | $14.2M | $4.9M | -$789,000 | $6.0M |
| EPS (diluted) | $0.25 | $0.16 | -$0.00 | $0.22 | $0.30 | $0.15 | -$0.02 | $0.13 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $36.6M | $25.0M | $24.8M | $56.4M | $37.0M |
| Capital expenditure | -$13.5M | -$10.2M | -$10.6M | -$13.0M | -$14.7M |
| Free cash flow | $23.0M | $14.7M | $14.2M | $43.4M | $22.3M |
| Dividends paid | -$1.8M | -$1.9M | -$1.9M | -$1.9M | -$1.9M |
| Net share buybacks | $51.7M | -$3.9M | -$2.2M | -$5.3M | -$12.4M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $22.7M
- Total assets
- $586.8M
- Total liabilities
- $308.0M
- Total debt
- $165.1M
- Net debt
- $142.4M
- Shareholders’ equity
- $272.7M
As of Jun 30, 2026 (filed Jul 30, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Aug 10, 2026 | $0.01 | Aug 31, 2026 |
| May 11, 2026 | $0.01 | Jun 1, 2026 |
| Feb 13, 2026 | $0.01 | Mar 9, 2026 |
| Nov 3, 2025 | $0.01 | Nov 24, 2025 |
| Aug 4, 2025 | $0.01 | Aug 25, 2025 |
| May 5, 2025 | $0.01 | May 27, 2025 |
| Feb 10, 2025 | $0.01 | Mar 3, 2025 |
| Nov 4, 2024 | $0.01 | Nov 25, 2024 |
Short interest
- Shares sold short
- 4,382,706
- Days to cover
- 10.24
- Change vs previous report
- +7.0%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Jul 9, 2010
- 2-for-1
- Dec 22, 1997
- 2-for-1