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.99, up 125.0% year over year.
- Over the past year the stock returned +100.0%, ahead of the S&P 500 by 84.9 percentage points.
- Revenue over the last four quarters was $293.0M, up 36.8% from a year earlier, accelerating from 24.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 16%
- EPS growth (TTM, YoY)Top 17%
- FCF growth (TTM, YoY)Bottom 4%
- Revenue growth, 3-year CAGRTop 15%
- Revenue growth accelerationTop 28%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 7%
- Gross marginBottom 37%
- Operating marginTop 50%
- Cash conversion (OCF / net income)Bottom 6%
- Accruals (lower is better)Bottom 6%
- Net debt / EBITDA (lower is better)Top 43%
- Interest coverTop 35%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldBottom 41%
- Free-cash-flow yieldBottom 28%
- EBITDA / enterprise valueBottom 16%
- Sales / enterprise valueBottom 24%
- P/E vs own 5-year history (lower is better)Bottom 45%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthTop 27%
- 6-month returnTop 1%
- 1-year return vs S&P 500Top 6%
- Distance from 52-week highBottom 46%
- Trend checklist (0–4)Top 5%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 32%
- Consecutive EPS beatsTop 50%
- Share of analysts rating BuyBottom 43%
- Upside to consensus price targetBottom 24%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Bottom 3%
- Maximum drawdown, 3 yearsTop 35%
- Beta vs S&P 500 (lower is better)Bottom 2%
- Net debt / EBITDA (lower is better)Top 43%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 24.7% | 36.8% | ↑ |
| EPS growth (YoY) | 73.3% | 125.0% | ↑ |
| Gross margin | 22.5% | 24.5% | ↑ |
| Operating margin | 9.4% | 13.1% | ↑ |
| FCF margin | 0.9% | -1.7% | ↓ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 36.8% | 24.7% | ↑ | Top 16% |
| EPS growth (TTM, YoY) | 125.0% | 73.3% | ↑ | Top 17% |
| Gross margin | 24.5% | 22.5% | ↑ | Bottom 37% |
| Operating margin | 13.1% | 9.4% | ↑ | Top 50% |
| Net margin | 13.0% | 6.6% | ↑ | — |
| Free-cash-flow margin | -1.7% | 0.9% | ↓ | — |
| Return on invested capital | 20.6% | — | Top 7% | |
| Revenue growth, 3-year CAGR | 20.4% | — | Top 15% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- -0.06×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- 15.0%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 22.0%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- +35.3 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 1.22×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 7.0×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 0.00%
- Net buyback yield (TTM)
- -0.05%
- Shareholder yield
- -0.05%
- Share count change, 1 year
- +6.2%
- Share count change, 3-year CAGR
- +10.8%
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
- 1
- Beats in the last 8 reports
- 6 of 8
- Average EPS surprise, last 4
- +20.4%
- Average 2-day reaction, last 8
- -0.4%
- Positive 20 days after report
- 4 of 8
Analysts
- Consensus price target
- $34.50
- Target vs current price
- +11.5%
- Analysts with a rating
- 13
- Share rating Buy or Strong Buy
- 54%
- Consensus rating
- Buy
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 4, 2026 | +102.7% | +5.4% | +40.6% | -11.4% | — |
| May 5, 2026 | -7.7% | +1.3% | +1.8% | +40.1% | +40.5% |
| Mar 11, 2026 | -46.7% | -1.2% | -2.8% | -10.0% | +41.8% |
| Nov 4, 2025 | +33.3% | -4.3% | -12.2% | -19.1% | +0.1% |
| Aug 5, 2025 | +23.1% | +1.8% | +18.6% | +2.9% | +39.1% |
| May 6, 2025 | +183.3% | -1.9% | +73.5% | +101.2% | +65.5% |
| Mar 10, 2025 | +55.6% | -2.5% | +25.9% | -11.8% | +95.9% |
| Nov 4, 2024 | +14.3% | -1.4% | +37.5% | +66.3% | +82.4% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Aug 4, 2026 | $0.26 | $0.13 | +102.7% | $99.4M |
| May 5, 2026 | $0.12 | $0.13 | -7.7% | $70.1M |
| Mar 11, 2026 | $0.08 | $0.15 | -46.7% | $67.5M |
| Nov 4, 2025 | $0.20 | $0.15 | +33.3% | $56.0M |
| Aug 5, 2025 | $0.16 | $0.13 | +23.1% | $58.4M |
| May 6, 2025 | $0.17 | $0.06 | +183.3% | $55.4M |
| Mar 10, 2025 | $0.14 | $0.09 | +55.6% | $50.8M |
| Nov 4, 2024 | $0.08 | $0.07 | +14.3% | $49.7M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 31.3× | 25.0× | 70th | Bottom 41% |
| P/E (forward) | 39.5× | — | — | — |
| EV / EBITDA | 27.6× | — | — | Bottom 16% |
| EV / Sales | 4.00× | — | — | Bottom 24% |
| Free-cash-flow yield | -0.46% | — | — | Bottom 28% |
| Earnings yield | 3.20% | — | — | Bottom 41% |
P/E over the past five years
Range 17.4× – 69.6× since Mar 31, 2024. 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
- +100.0%
- Earnings per share growth (TTM)
- +125.0%
- Change in P/E multiple
- +17.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
- 13
- Days above the 200-day average
- 124
- 50-day average slope (20 days)
- +6.1%
- 200-day average slope (20 days)
- +6.8%
- Distance from 50-day average
- +10.1%
- Distance from 200-day average
- +46.0%
- RSI (14)
- 60.5
- Relative volume
- 0.85×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 98.3%
- Volatility vs own 5-year history
- 87th percentile · High for this stock
- Beta vs S&P 500 (2 years, weekly)
- 1.72
- Correlation with S&P 500
- 0.28
- Current drawdown from 1-year high
- -20.3%
- Maximum drawdown, 3 years
- -41.3%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Oct 15, 2020 | Mar 11, 2024 | -84.6% | 854 days | 412 days (Oct 30, 2025) |
| Aug 11, 2026 | Sep 1, 2026 | -41.3% | 15 days | Not yet recovered |
| Oct 30, 2025 | Nov 20, 2025 | -28.2% | 15 days | 29 days (Jan 5, 2026) |
| Jan 5, 2026 | Apr 7, 2026 | -22.6% | 63 days | 27 days (May 14, 2026) |
| Jul 21, 2026 | Jul 29, 2026 | -20.1% | 6 days | 4 days (Aug 4, 2026) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $1.12B
- P/E (TTM)
- 31.3
- EPS, diluted (TTM)
- $0.99
- Revenue (TTM)
- $293.0M
- 52-week range
- $13.19 – $39.67
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $43.3M | $136.1M | $188.1M | $187.0M | $237.3M |
| Gross profit | $3.3M | -$6.7M | $24.3M | $39.4M | $59.8M |
| Operating income | -$31.5M | -$35.4M | $23.2M | $12.2M | $28.1M |
| Net income | -$30.5M | -$42.3M | $24.7M | $10.5M | $30.5M |
| EPS (diluted) | -$2.52 | -$3.41 | -$0.10 | $0.34 | $0.84 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $49.7M | $50.8M | $55.4M | $58.4M | $56.0M | $67.5M | $70.1M | $99.4M |
| Net income | $2.5M | $4.4M | $5.4M | $1.8M | $20.4M | $3.0M | $4.7M | $10.0M |
| EPS (diluted) | $0.08 | $0.14 | $0.17 | $0.05 | $0.53 | $0.08 | $0.12 | $0.26 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | -$25.8M | -$44.6M | -$11.3M | $3.4M | $7.2M |
| Capital expenditure | -$39,000 | -$421,000 | -$1.1M | -$1.9M | -$2.0M |
| Free cash flow | -$25.9M | -$45.1M | -$12.4M | $1.4M | $5.2M |
| Dividends paid | $0 | $0 | $0 | $0 | $0 |
| Net share buybacks | $80,000 | $18.5M | -$540,000 | $114,000 | $78,000 |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $4.4M
- Total assets
- $268.0M
- Total liabilities
- $138.8M
- Total debt
- $56.2M
- Net debt
- $51.8M
- Shareholders’ equity
- $129.2M
As of Jun 30, 2026 (filed Aug 6, 2026).
Short interest
- Shares sold short
- 3,758,514
- Days to cover
- 9.26
- Change vs previous report
- +9.0%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Sep 26, 2023
- 1-for-6
- Jul 12, 2007
- 2-for-1
- Jul 10, 2002
- 1,097-for-1,000
- Nov 5, 2001
- 1-for-120