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
- Operating margin widened to 42.3% from 33.7% a year earlier.
- The stock is in a downtrend: below its 200-day average, with the 50-day average below the 200-day.
- Revenue over the last four quarters was $180.1M, up 23.2% from a year earlier, accelerating from 18.8% a quarter earlier.
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)Top 24%
- EPS growth (TTM, YoY)Top 45%
- FCF growth (TTM, YoY)Bottom 41%
- Revenue growth, 3-year CAGRBottom 16%
- Revenue growth accelerationBottom 49%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 22%
- Gross marginTop 20%
- Operating marginTop 12%
- Cash conversion (OCF / net income)Bottom 32%
- Accruals (lower is better)Bottom 35%
- Net debt / EBITDA (lower is better)Top 5%
- Interest coverTop 4%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldTop 4%
- Free-cash-flow yieldTop 35%
- EBITDA / enterprise valueTop 2%
- Sales / enterprise valueTop 47%
- P/E vs own 5-year history (lower is better)Top 39%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthTop 50%
- 6-month returnBottom 41%
- 1-year return vs S&P 500Top 46%
- Distance from 52-week highBottom 40%
- Trend checklist (0–4)Bottom 18%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersBottom 48%
- Consecutive EPS beatsBottom 20%
- Share of analysts rating BuyBottom 4%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Top 20%
- Maximum drawdown, 3 yearsTop 39%
- Beta vs S&P 500 (lower is better)Top 30%
- Net debt / EBITDA (lower is better)Top 5%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 18.8% | 23.2% | ↑ |
| EPS growth (YoY) | 17.1% | 9.8% | ↓ |
| Gross margin | 40.6% | 58.9% | ↑ |
| Operating margin | 33.7% | 42.3% | ↑ |
| FCF margin | 30.5% | 23.6% | ↓ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 23.2% | 18.8% | ↑ | Top 24% |
| EPS growth (TTM, YoY) | 9.8% | 17.1% | ↓ | Top 45% |
| Gross margin | 58.9% | 40.6% | ↑ | Top 20% |
| Operating margin | 42.3% | 33.7% | ↑ | Top 12% |
| Net margin | 46.1% | 51.8% | ↓ | — |
| Free-cash-flow margin | 23.6% | 30.5% | ↓ | — |
| Return on invested capital | 12.5% | — | Top 22% | |
| Revenue growth, 3-year CAGR | -15.0% | — | Bottom 16% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 1.44×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -5.4%
- 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.
- -10.1 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- -0.86×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 83.2×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 4.41%
- Net buyback yield (TTM)
- 0.11%
- Shareholder yield
- 4.52%
- Share count change, 1 year
- +1.1%
- Share count change, 3-year CAGR
- -0.0%
Shareholder yield = dividends + net buybacks over the last four quarters, divided by market cap.
Based on the four quarters through Jun 30, 2026 (filed Aug 6, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 0
- Beats in the last 8 reports
- 3 of 8
- Average EPS surprise, last 4
- +6.3%
- Average 2-day reaction, last 8
- +0.2%
- Positive 20 days after report
- 4 of 8
Analysts
- Analysts with a rating
- 24
- Share rating Buy or Strong Buy
- 13%
- Consensus rating
- Hold
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 5, 2026 | -24.0% | -2.6% | +5.7% | +6.1% | — |
| May 6, 2026 | +43.9% | -6.3% | -2.8% | -0.6% | -10.0% |
| Mar 4, 2026 | -8.1% | +1.3% | -5.8% | -8.6% | -18.9% |
| Nov 5, 2025 | +13.5% | +2.9% | +11.7% | +27.3% | +32.6% |
| Aug 6, 2025 | +13.8% | -0.7% | +9.3% | +14.3% | +15.0% |
| May 7, 2025 | -9.3% | +1.4% | +16.7% | +12.1% | +8.0% |
| Mar 10, 2025 | -29.2% | +1.3% | +2.8% | -13.3% | -6.5% |
| Nov 7, 2024 | -29.6% | +4.1% | -1.7% | -5.2% | +1.9% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Aug 5, 2026 | $0.57 | $0.75 | -24.0% | $51.1M |
| May 6, 2026 | $0.59 | $0.41 | +43.9% | $49.8M |
| Mar 4, 2026 | $0.34 | $0.37 | -8.1% | $39.4M |
| Nov 5, 2025 | $0.42 | $0.37 | +13.5% | $39.8M |
| Aug 6, 2025 | $0.33 | $0.29 | +13.8% | $34.5M |
| May 7, 2025 | $0.39 | $0.43 | -9.3% | $42.6M |
| Mar 10, 2025 | $0.34 | $0.48 | -29.2% | $39.0M |
| Nov 7, 2024 | $0.19 | $0.27 | -29.6% | $30.1M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 6.1× | 6.0× | 57th | Top 4% |
| P/E (forward) | 6.4× | — | — | — |
| EV / EBITDA | 2.9× | — | — | Top 2% |
| EV / Sales | 2.16× | — | — | Top 47% |
| Free-cash-flow yield | 8.45% | — | — | Top 35% |
| Earnings yield | 16.45% | — | — | Top 4% |
P/E over the past five years
Range 2.0× – 11.6× since Sep 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
- +16.4%
- Earnings per share growth (TTM)
- +9.8%
- Change in P/E multiple
- +13.6%
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
- 0
- 50-day average slope (20 days)
- +1.5%
- 200-day average slope (20 days)
- -0.3%
- Distance from 50-day average
- -2.9%
- Distance from 200-day average
- -8.9%
- RSI (14)
- 41.0
- Relative volume
- 0.58×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 27.2%
- Volatility vs own 5-year history
- 5th percentile · Low for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.27
- Correlation with S&P 500
- 0.12
- Current drawdown from 1-year high
- -24.7%
- Maximum drawdown, 3 years
- -45.0%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Jun 7, 2022 | Apr 8, 2025 | -68.0% | 711 days | Not yet recovered |
| Feb 17, 2021 | Apr 12, 2021 | -37.1% | 37 days | 36 days (Jun 2, 2021) |
| Nov 11, 2021 | Dec 6, 2021 | -32.4% | 16 days | 61 days (Mar 4, 2022) |
| Jun 25, 2021 | Jul 19, 2021 | -22.3% | 15 days | 14 days (Aug 6, 2021) |
| Oct 8, 2020 | Oct 19, 2020 | -20.5% | 7 days | 13 days (Nov 5, 2020) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $502.8M
- P/E (TTM)
- 6.1
- EPS, diluted (TTM)
- $2.24
- Revenue (TTM)
- $180.1M
- Dividend yield
- 5.14%
- 52-week range
- $11.20 – $18.45
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $168.9M | $254.3M | $148.6M | $125.3M | $156.4M |
| Gross profit | $107.5M | $179.2M | $73.7M | $46.0M | $67.4M |
| Operating income | $114.1M | $175.5M | $64.2M | $33.2M | $54.2M |
| Net income | $116.7M | $242.2M | $60.9M | $63.0M | $70.2M |
| EPS (diluted) | $3.13 | $6.52 | $1.64 | $1.69 | $1.90 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $30.1M | $39.0M | $42.6M | $34.5M | $39.8M | $39.4M | $49.8M | $51.1M |
| Net income | $25.5M | $17.6M | $13.0M | $19.6M | $16.0M | $21.6M | $18.7M | $26.7M |
| EPS (diluted) | $0.69 | $0.47 | $0.35 | $0.53 | $0.43 | $0.59 | $0.50 | $0.72 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $110.3M | $164.7M | $115.6M | $73.9M | $100.1M |
| Capital expenditure | -$11.6M | -$45.6M | -$37.6M | -$26.4M | -$67.7M |
| Free cash flow | $98.6M | $119.1M | $77.9M | $47.5M | $32.5M |
| Dividends paid | $0 | $0 | -$7.7M | -$72.3M | -$15.9M |
| Net share buybacks | -$899,000 | $83,000 | -$929,000 | -$233,000 | -$6.4M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $113.3M
- Total assets
- $668.1M
- Total liabilities
- $125.4M
- Total debt
- $0
- Net debt
- -$113.3M
- Shareholders’ equity
- $542.7M
As of Jun 30, 2026 (filed Aug 6, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Aug 19, 2026 | $0.13 | Aug 31, 2026 |
| May 20, 2026 | $0.33 | Jun 1, 2026 |
| Mar 20, 2026 | $0.12 | Mar 31, 2026 |
| Nov 14, 2025 | $0.12 | Nov 28, 2025 |
| Sep 22, 2025 | $0.12 | Sep 29, 2025 |
| May 19, 2025 | $0.11 | Jun 2, 2025 |
| Mar 20, 2025 | $0.11 | Mar 31, 2025 |
| Nov 15, 2024 | $0.11 | Nov 29, 2024 |
Short interest
- Shares sold short
- 1,973,239
- Days to cover
- 6.55
- Change vs previous report
- +3.3%
FINRA short interest, settlement date Sep 15, 2026.