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 $0.65, up 161.3% year over year.
- Operating margin widened to 42.3% from 20.8% a year earlier.
- Revenue over the last four quarters was $368.1M, up 14.4% from a year earlier, accelerating from 4.7% 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 41%
- EPS growth (TTM, YoY)Top 14%
- FCF growth (TTM, YoY)Top 4%
- Revenue growth, 3-year CAGRTop 38%
- Revenue growth accelerationTop 32%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 25%
- Gross marginTop 6%
- Operating marginTop 13%
- Cash conversion (OCF / net income)Top 32%
- Accruals (lower is better)Top 28%
- Net debt / EBITDA (lower is better)Bottom 39%
- Interest coverTop 28%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldBottom 49%
- Free-cash-flow yieldTop 4%
- EBITDA / enterprise valueTop 47%
- Sales / enterprise valueBottom 19%
- P/E vs own 5-year history (lower is better)Top 25%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthBottom 31%
- 6-month returnTop 38%
- 1-year return vs S&P 500Bottom 41%
- Distance from 52-week highTop 11%
- Trend checklist (0–4)Top 32%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 30%
- Consecutive EPS beatsTop 50%
- Share of analysts rating BuyTop 26%
- Upside to consensus price targetTop 41%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Top 5%
- Maximum drawdown, 3 yearsTop 26%
- Beta vs S&P 500 (lower is better)Top 32%
- Net debt / EBITDA (lower is better)Bottom 39%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 4.7% | 14.4% | ↑ |
| EPS growth (YoY) | 441.9% | 161.3% | ↓ |
| Gross margin | 64.4% | 82.0% | ↑ |
| Operating margin | 20.8% | 42.3% | ↑ |
| FCF margin | 6.9% | 64.4% | ↑ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 14.4% | 4.7% | ↑ | Top 41% |
| EPS growth (TTM, YoY) | 161.3% | 441.9% | ↓ | Top 14% |
| Gross margin | 82.0% | 64.4% | ↑ | Top 6% |
| Operating margin | 42.3% | 20.8% | ↑ | Top 13% |
| Net margin | 24.2% | 12.3% | ↑ | — |
| Free-cash-flow margin | 64.4% | 6.9% | ↑ | — |
| Return on invested capital | 11.8% | — | Top 25% | |
| Revenue growth, 3-year CAGR | 5.4% | — | Top 38% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 2.67×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -11.2%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 8.0%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- -2.5 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 2.07×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 8.1×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 11.08%
- Net buyback yield (TTM)
- 0.69%
- Shareholder yield
- 11.77%
- Share count change, 1 year
- -3.3%
- Share count change, 3-year CAGR
- +12.7%
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 7, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 1
- Beats in the last 8 reports
- 5 of 8
- Average EPS surprise, last 4
- +21.8%
- Average 2-day reaction, last 8
- +1.3%
- Positive 20 days after report
- 4 of 8
Analysts
- Consensus price target
- $19.00
- Target vs current price
- +30.3%
- Analysts with a rating
- 18
- Share rating Buy or Strong Buy
- 72%
- Consensus rating
- Buy
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 7, 2026 | +73.5% | +3.2% | +4.1% | +2.8% | — |
| May 7, 2026 | -82.6% | -0.5% | +5.0% | +5.8% | +1.2% |
| Feb 26, 2026 | +50.0% | +2.6% | +3.0% | +2.8% | +8.0% |
| Nov 6, 2025 | +46.2% | +0.3% | +4.4% | -3.0% | +3.1% |
| Aug 7, 2025 | -85.7% | -2.3% | -2.2% | -7.2% | -10.3% |
| May 8, 2025 | +33.3% | +7.6% | +15.6% | +10.4% | +24.1% |
| Feb 27, 2025 | -400.0% | -3.5% | -12.3% | -9.4% | -16.8% |
| Nov 7, 2024 | +4.8% | +2.7% | -0.3% | -2.6% | -5.6% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Aug 7, 2026 | $0.40 | $0.23 | +73.5% | $112.5M |
| May 7, 2026 | $0.04 | $0.23 | -82.6% | $82.9M |
| Feb 26, 2026 | $0.21 | $0.14 | +50.0% | $82.5M |
| Nov 6, 2025 | $0.19 | $0.13 | +46.2% | $80.6M |
| Aug 7, 2025 | $0.02 | $0.14 | -85.7% | $86.5M |
| May 8, 2025 | $0.20 | $0.15 | +33.3% | $90.3M |
| Feb 27, 2025 | -$0.48 | $0.16 | -400.0% | $66.7M |
| Nov 7, 2024 | $0.22 | $0.21 | +4.8% | $83.8M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 22.3× | 24.1× | 42th | Bottom 49% |
| P/E (forward) | 13.6× | — | — | — |
| EV / EBITDA | 8.9× | — | — | Top 47% |
| EV / Sales | 5.10× | — | — | Bottom 19% |
| Free-cash-flow yield | 16.49% | — | — | Top 4% |
| Earnings yield | 4.48% | — | — | Bottom 49% |
P/E over the past five years
Range 8.0× – 125.2× since Dec 31, 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
- +6.6%
- Earnings per share growth (TTM)
- +161.3%
- Change in P/E multiple
- -60.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
- 2
- 50-day average slope (20 days)
- -0.3%
- 200-day average slope (20 days)
- +1.4%
- Distance from 50-day average
- -1.8%
- Distance from 200-day average
- +1.8%
- RSI (14)
- 47.3
- Relative volume
- 0.52×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 18.6%
- Volatility vs own 5-year history
- 12th percentile · Low for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.29
- Correlation with S&P 500
- 0.18
- Current drawdown from 1-year high
- -6.6%
- Maximum drawdown, 3 years
- -33.4%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Jun 8, 2022 | Dec 19, 2025 | -43.3% | 887 days | Not yet recovered |
| Jun 15, 2021 | Aug 20, 2021 | -22.4% | 47 days | 17 days (Sep 15, 2021) |
| Dec 4, 2020 | Dec 28, 2020 | -16.6% | 15 days | 10 days (Jan 12, 2021) |
| Oct 20, 2021 | Dec 20, 2021 | -16.1% | 42 days | 15 days (Jan 11, 2022) |
| Jan 12, 2021 | Feb 1, 2021 | -13.4% | 13 days | 7 days (Feb 10, 2021) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $1.44B
- P/E (TTM)
- 22.3
- EPS, diluted (TTM)
- $0.65
- Revenue (TTM)
- $368.1M
- Dividend yield
- 10.97%
- 52-week range
- $11.31 – $15.80
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $178.4M | $285.0M | $273.2M | $310.7M | $333.8M |
| Gross profit | $131.1M | $218.7M | $156.4M | $155.1M | $313.4M |
| Operating income | $49.3M | $136.9M | $109.9M | $37.0M | $132.8M |
| Net income | $33.9M | $111.9M | $66.5M | $12.3M | $90.9M |
| EPS (diluted) | $0.51 | $1.72 | $0.91 | -$76.16 | $0.46 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $74.2M | $70.9M | $90.3M | $86.5M | $80.6M | $76.4M | $84.2M | $126.9M |
| Net income | $22.7M | -$32.5M | $23.1M | $26.3M | $19.7M | $21.8M | $6.6M | $41.0M |
| EPS (diluted) | $0.22 | -$0.33 | $0.14 | $0.22 | $0.14 | $0.16 | $0.03 | $0.32 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $91.4M | $166.6M | $174.3M | $250.9M | $246.5M |
| Capital expenditure | -$56.1M | -$141.5M | -$490.8M | -$209,891 | -$734,000 |
| Free cash flow | $35.4M | $25.2M | -$316.5M | $250.7M | $245.7M |
| Dividends paid | -$68.9M | -$126.8M | -$152.0M | -$167.7M | -$172.7M |
| Net share buybacks | $55.3M | $112.7M | $111.0M | -$316,159 | -$16.3M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $44.9M
- Total assets
- $1.33B
- Total liabilities
- $497.5M
- Total debt
- $483.3M
- Net debt
- $438.3M
- Shareholders’ equity
- $735.0M
As of Jun 30, 2026 (filed Aug 7, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Aug 17, 2026 | $0.47 | Aug 24, 2026 |
| May 19, 2026 | $0.41 | May 27, 2026 |
| Mar 18, 2026 | $0.37 | Mar 25, 2026 |
| Nov 17, 2025 | $0.35 | Nov 24, 2025 |
| Aug 18, 2025 | $0.38 | Aug 25, 2025 |
| May 20, 2025 | $0.47 | May 28, 2025 |
| Mar 18, 2025 | $0.40 | Mar 25, 2025 |
| Nov 18, 2024 | $0.41 | Nov 25, 2024 |
Short interest
- Shares sold short
- 3,667,275
- Days to cover
- 3.48
- Change vs previous report
- -0.5%
FINRA short interest, settlement date Sep 15, 2026.