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 16.1× trailing earnings, the shares trade at the lowest P/E of the company's past five years.
- The diluted share count rose 10.5% in a year.
- Net debt is 4.5× EBITDA, a high level of leverage.
PromtFinance scores
Each score is a percentile within the Utilities sector (0–100). Under each score: how the stock ranks in its sector on every component. As of Oct 6, 2026.
How fast revenue, earnings and cash flow are growing.
- Revenue growth (TTM, YoY)Top 10%
- EPS growth (TTM, YoY)Top 40%
- Revenue growth, 3-year CAGRBottom 17%
- Revenue growth accelerationTop 28%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 50%
- Gross marginTop 42%
- Operating marginBottom 35%
- Cash conversion (OCF / net income)Top 27%
- Accruals (lower is better)Top 26%
- Net debt / EBITDA (lower is better)Top 31%
- Interest coverTop 39%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldTop 35%
- Free-cash-flow yieldBottom 48%
- EBITDA / enterprise valueTop 21%
- Sales / enterprise valueTop 22%
- P/E vs own 5-year history (lower is better)Top 13%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthTop 8%
- 6-month returnTop 26%
- 1-year return vs S&P 500Top 8%
- Distance from 52-week highTop 14%
- Trend checklist (0–4)Top 24%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 5%
- Consecutive EPS beatsTop 12%
- Share of analysts rating BuyBottom 11%
- Upside to consensus price targetBottom 19%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Top 34%
- Maximum drawdown, 3 yearsBottom 39%
- Beta vs S&P 500 (lower is better)Top 19%
- Net debt / EBITDA (lower is better)Top 31%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 19.6% | 20.8% | ↑ |
| EPS growth (YoY) | 7.3% | 8.4% | ↑ |
| Gross margin | 41.8% | 49.3% | ↑ |
| Operating margin | 18.9% | 18.9% | ↑ |
| FCF margin | -8.5% | -7.6% | ↑ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 20.8% | 19.6% | ↑ | Top 10% |
| EPS growth (TTM, YoY) | 8.4% | 7.3% | ↑ | Top 40% |
| Gross margin | 49.3% | 41.8% | ↑ | Top 42% |
| Operating margin | 18.9% | 18.9% | ↑ | Bottom 35% |
| Net margin | 9.5% | 9.5% | ↓ | — |
| Free-cash-flow margin | -7.6% | -8.5% | ↑ | — |
| Return on invested capital | 4.1% | — | Top 50% | |
| Revenue growth, 3-year CAGR | -1.6% | — | Bottom 17% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 2.52×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -3.9%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 0.0%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- +72.4 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 4.49×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 2.5×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 3.54%
- Net buyback yield (TTM)
- -8.99%
- Shareholder yield
- -5.45%
- Share count change, 1 year
- +10.5%
- Share count change, 3-year CAGR
- +3.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 3, 2026).
Earnings and expectations
Earnings momentum
- Consecutive EPS beats
- 5
- Beats in the last 8 reports
- 6 of 8
- Average EPS surprise, last 4
- +55.2%
- Average 2-day reaction, last 8
- +0.5%
- Positive 20 days after report
- 4 of 8
Analysts
- Consensus price target
- $56.50
- Target vs current price
- +11.5%
- Analysts with a rating
- 9
- Share rating Buy or Strong Buy
- 22%
- Consensus rating
- Hold
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 3, 2026 | +10.1% | -0.8% | -0.4% | -1.6% | — |
| May 4, 2026 | +1.1% | +1.2% | -2.1% | -6.2% | +6.1% |
| Feb 9, 2026 | +9.7% | +0.4% | +5.1% | +5.4% | -0.3% |
| Nov 3, 2025 | +200.0% | +0.7% | -1.8% | +2.4% | +3.7% |
| Aug 4, 2025 | +3.6% | +0.6% | -4.1% | -9.4% | -3.4% |
| May 6, 2025 | -2.2% | +0.9% | -7.4% | -8.0% | -13.0% |
| Feb 10, 2025 | +2.1% | +0.4% | +3.8% | +2.5% | +9.5% |
| Nov 4, 2024 | -75.0% | +0.8% | +6.2% | +6.4% | -4.9% |
Returns from the close before each report. Past reactions do not determine future ones.
Earnings history
| Report date | EPS | Estimate | Surprise | Revenue |
|---|---|---|---|---|
| Aug 3, 2026 | $0.29 | $0.26 | +10.1% | $117.0M |
| May 4, 2026 | $1.88 | $1.86 | +1.1% | $198.6M |
| Feb 9, 2026 | $1.13 | $1.03 | +9.7% | $161.5M |
| Nov 3, 2025 | $0.03 | -$0.03 | +200.0% | $101.1M |
| Aug 4, 2025 | $0.29 | $0.28 | +3.6% | $102.6M |
| May 6, 2025 | $1.74 | $1.78 | -2.2% | $170.8M |
| Feb 10, 2025 | $0.97 | $0.95 | +2.1% | $127.5M |
| Nov 4, 2024 | $0.02 | $0.08 | -75.0% | $494.8M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 16.1× | 18.8× | 0th | Top 35% |
| P/E (forward) | 15.4× | — | — | — |
| EV / EBITDA | 8.9× | — | — | Top 21% |
| EV / Sales | 3.13× | — | — | Top 22% |
| Free-cash-flow yield | -4.94% | — | — | Bottom 48% |
| Earnings yield | 6.20% | — | — | Top 35% |
P/E over the past five years
Range 16.8× – 22.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
- +8.5%
- Earnings per share growth (TTM)
- +8.4%
- Change in P/E multiple
- -5.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)
- -1.3%
- 200-day average slope (20 days)
- +0.5%
- Distance from 50-day average
- -4.6%
- Distance from 200-day average
- -2.6%
- RSI (14)
- 37.4
- Relative volume
- 0.97×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 15.4%
- Volatility vs own 5-year history
- 0th percentile · Low for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.02
- Correlation with S&P 500
- 0.02
- Current drawdown from 1-year high
- -9.5%
- Maximum drawdown, 3 years
- -28.2%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Jul 1, 2022 | Oct 2, 2023 | -30.6% | 314 days | 207 days (Jul 30, 2024) |
| Apr 29, 2021 | Dec 1, 2021 | -29.3% | 150 days | 120 days (May 24, 2022) |
| Sep 17, 2024 | Sep 8, 2025 | -28.2% | 243 days | Not yet recovered |
| Oct 12, 2020 | Nov 6, 2020 | -20.0% | 19 days | 16 days (Dec 1, 2020) |
| Dec 31, 2020 | Jan 26, 2021 | -11.5% | 16 days | 28 days (Mar 8, 2021) |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $921.1M
- P/E (TTM)
- 16.1
- EPS, diluted (TTM)
- $3.14
- Revenue (TTM)
- $596.5M
- Dividend yield
- 3.70%
- 52-week range
- $46.40 – $57.26
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $473.3M | $563.2M | $557.1M | $494.8M | $536.0M |
| Gross profit | $161.8M | $169.0M | $183.0M | $196.6M | $221.2M |
| Operating income | $77.8M | $80.5M | $87.1M | $90.6M | $101.2M |
| Net income | $36.1M | $41.4M | $45.2M | $47.1M | $50.2M |
| EPS (diluted) | $2.35 | $2.59 | $2.82 | $2.93 | $2.97 |
| Q3 2024 | Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $92.9M | $127.5M | $170.8M | $102.6M | $101.1M | $161.5M | $216.9M | $117.0M |
| Net income | $0 | $15.6M | $27.5M | $4.0M | -$300,000 | $19.0M | $33.2M | $4.7M |
| EPS (diluted) | $0.00 | $0.96 | $1.69 | $0.25 | -$0.02 | $1.05 | $1.85 | $0.26 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $107.8M | $97.7M | $107.0M | $125.9M | $131.3M |
| Capital expenditure | -$115.0M | -$122.1M | -$141.0M | -$169.9M | -$185.1M |
| Free cash flow | -$7.2M | -$24.4M | -$34.0M | -$44.0M | -$53.8M |
| Dividends paid | -$23.6M | -$25.1M | -$26.2M | -$27.5M | -$30.1M |
| Net share buybacks | $45.5M | $1.0M | $1.1M | $1.1M | $73.5M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $9.2M
- Total assets
- $2.22B
- Total liabilities
- $1.58B
- Total debt
- $956.0M
- Net debt
- $946.8M
- Shareholders’ equity
- $643.7M
As of Jun 30, 2026 (filed Aug 3, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Aug 17, 2026 | $0.48 | Aug 31, 2026 |
| May 14, 2026 | $0.48 | May 29, 2026 |
| Feb 12, 2026 | $0.48 | Feb 27, 2026 |
| Nov 13, 2025 | $0.45 | Nov 28, 2025 |
| Aug 14, 2025 | $0.45 | Aug 28, 2025 |
| May 15, 2025 | $0.45 | May 30, 2025 |
| Feb 13, 2025 | $0.45 | Feb 28, 2025 |
| Nov 14, 2024 | $0.43 | Nov 29, 2024 |
Short interest
- Shares sold short
- 714,417
- Days to cover
- 6.02
- Change vs previous report
- +2.3%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Dec 14, 1992
- 2-for-1
- Apr 27, 1992
- 111-for-100