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
- Net debt is 4.0× EBITDA, a high level of leverage.
- The stock is in a downtrend: below its 200-day average, with the 50-day average below the 200-day.
- The shares trade at 16.3× trailing earnings, lower than 80% of the company's own readings over the past five years.
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 5, 2026.
How fast revenue, earnings and cash flow are growing.
- Revenue growth (TTM, YoY)Top 18%
- EPS growth (TTM, YoY)Bottom 46%
- FCF growth (TTM, YoY)Top 22%
- Revenue growth, 3-year CAGRTop 42%
- Revenue growth accelerationBottom 14%
Returns on capital, margins, earnings quality and balance-sheet strength.
- Return on invested capitalTop 28%
- Gross marginBottom 24%
- Operating marginBottom 26%
- Cash conversion (OCF / net income)Bottom 17%
- Accruals (lower is better)Bottom 32%
- Net debt / EBITDA (lower is better)Top 21%
- Interest coverTop 23%
How cheap the shares are relative to earnings, cash flow and their own history.
- Earnings yieldTop 35%
- Free-cash-flow yieldTop 31%
- EBITDA / enterprise valueTop 35%
- Sales / enterprise valueTop 32%
- P/E vs own 5-year history (lower is better)Top 48%
Strength and persistence of the price trend, including versus the S&P 500.
- 12-month return excluding last monthBottom 44%
- 6-month returnTop 11%
- 1-year return vs S&P 500Top 38%
- Distance from 52-week highBottom 26%
- Trend checklist (0–4)Top 9%
Earnings surprises and analyst sentiment (estimate-revision history is being collected).
- Average EPS surprise, last 4 quartersTop 19%
- Consecutive EPS beatsBottom 14%
- Share of analysts rating BuyTop 41%
Low volatility, shallow drawdowns, low market sensitivity and modest leverage.
- Volatility, 60 days (lower is better)Bottom 18%
- Maximum drawdown, 3 yearsTop 47%
- Beta vs S&P 500 (lower is better)Bottom 23%
- Net debt / EBITDA (lower is better)Top 21%
What changed
Latest four quarters versus the same period a year earlier (growth: versus one quarter earlier).
| Measure | Before | Now | |
|---|---|---|---|
| Revenue growth (YoY) | 17.5% | 13.8% | ↓ |
| EPS growth (YoY) | 4.9% | 1.8% | ↓ |
| Gross margin | 35.3% | 31.5% | ↓ |
| Operating margin | 20.4% | 17.3% | ↓ |
| FCF margin | 7.8% | 1.9% | ↓ |
Fundamental momentum
| Measure | Now (TTM) | Year / quarter before | Sector rank | |
|---|---|---|---|---|
| Revenue growth (TTM, YoY) | 13.8% | 17.5% | ↓ | Top 18% |
| EPS growth (TTM, YoY) | 1.8% | 4.9% | ↓ | Bottom 46% |
| Gross margin | 31.5% | 35.3% | ↓ | Bottom 24% |
| Operating margin | 17.3% | 20.4% | ↓ | Bottom 26% |
| Net margin | 13.1% | 14.5% | ↓ | — |
| Free-cash-flow margin | 1.9% | 7.8% | ↓ | — |
| Return on invested capital | 4.5% | — | Top 28% | |
| Revenue growth, 3-year CAGR | 4.2% | — | Top 42% |
Quality of earnings and balance sheet
- Cash conversion (OCF / net income)Above 1× means profits are backed by cash.
- 1.65×
- Accruals (net income − OCF) / assetsLower is better; high accruals can signal weaker earnings quality.
- -2.7%
- Stock-based compensation / revenueA cost to shareholders through dilution.
- 0.7%
- Receivables growth vs revenue growthReceivables growing much faster than sales can be a warning.
- -11.0 pp
- Net debt / EBITDABelow 1× is conservative; above 3× is high leverage.
- 4.01×
- Interest cover (operating income / interest)How many times operating profit covers interest.
- 2.9×
Shareholder returns
- Dividend yield (dividends paid, TTM)
- 3.88%
- Net buyback yield (TTM)
- -0.89%
- Shareholder yield
- 3.00%
- Share count change, 1 year
- +0.9%
- Share count change, 3-year CAGR
- +1.6%
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
- 7 of 8
- Average EPS surprise, last 4
- +13.9%
- Average 2-day reaction, last 8
- -0.7%
- Positive 20 days after report
- 3 of 8
Analysts
- Analysts with a rating
- 4
- Share rating Buy or Strong Buy
- 50%
- Consensus rating
- Buy
How the stock reacted to recent reports
| Report date | EPS surprise | 2 days | 5 days | 20 days | 60 days |
|---|---|---|---|---|---|
| Aug 5, 2026 | -16.7% | -2.6% | -4.5% | -3.2% | — |
| May 6, 2026 | +7.7% | -2.4% | +0.9% | -4.2% | -7.9% |
| Feb 5, 2026 | +4.4% | -0.6% | -5.1% | +0.2% | +7.8% |
| Nov 19, 2025 | +60.0% | -3.3% | +2.9% | +5.5% | +1.1% |
| Aug 11, 2025 | +150.0% | +1.4% | +0.7% | +3.4% | -1.8% |
| May 6, 2025 | +8.8% | +2.7% | +1.3% | -1.3% | -4.1% |
| Feb 10, 2025 | +2.0% | +2.2% | -2.0% | -4.5% | +2.7% |
| Nov 13, 2024 | +200.0% | -2.7% | -6.1% | -5.9% | -1.3% |
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.05 | $0.06 | -16.7% | $17.1M |
| May 6, 2026 | $0.84 | $0.78 | +7.7% | $45.5M |
| Feb 5, 2026 | $0.47 | $0.45 | +4.4% | $30.3M |
| Nov 19, 2025 | -$0.02 | -$0.05 | +60.0% | $14.3M |
| Aug 11, 2025 | $0.05 | $0.02 | +150.0% | $17.3M |
| May 6, 2025 | $0.74 | $0.68 | +8.8% | $36.5M |
| Feb 10, 2025 | $0.51 | $0.50 | +2.0% | $27.3M |
| Nov 13, 2024 | $0.01 | -$0.01 | +200.0% | $13.1M |
Valuation in context
| Multiple | Now | 5-year median | 5-year percentile | Sector rank (cheapness) |
|---|---|---|---|---|
| P/E (trailing) | 16.3× | 17.4× | 20th | Top 35% |
| P/E (forward) | 16.5× | — | — | — |
| EV / EBITDA | 10.2× | — | — | Top 35% |
| EV / Sales | 3.48× | — | — | Top 32% |
| Free-cash-flow yield | 0.89% | — | — | Top 31% |
| Earnings yield | 6.15% | — | — | Top 35% |
P/E over the past five years
Range 14.0× – 20.5× 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
- -3.1%
- Earnings per share growth (TTM)
- +1.8%
- Change in P/E multiple
- -6.0%
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
- 1
- Days above the 200-day average
- 0
- 50-day average slope (20 days)
- -4.8%
- 200-day average slope (20 days)
- -0.3%
- Distance from 50-day average
- +0.7%
- Distance from 200-day average
- -2.3%
- RSI (14)
- 54.3
- Relative volume
- 0.79×
Risk and drawdowns
- Volatility, 60 days (annualized)
- 32.2%
- Volatility vs own 5-year history
- 52th percentile · Normal for this stock
- Beta vs S&P 500 (2 years, weekly)
- 0.40
- Correlation with S&P 500
- 0.22
- Current drawdown from 1-year high
- -17.9%
- Maximum drawdown, 3 years
- -22.2%
Largest declines in the past six years
| From peak | To low | Decline | Length | Recovery |
|---|---|---|---|---|
| Nov 10, 2020 | Oct 27, 2023 | -42.8% | 745 days | Not yet recovered |
Declines of 10% or more from a closing high, measured on daily closes.
Financial statements
- Market cap
- $226.9M
- P/E (TTM)
- 16.3
- EPS, diluted (TTM)
- $1.34
- Revenue (TTM)
- $107.1M
- Dividend yield
- 4.94%
- 52-week range
- $20.55 – $27.99
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Revenue | $75.2M | $84.2M | $97.4M | $84.6M | $95.3M |
| Gross profit | $25.5M | $26.2M | $29.8M | $30.3M | $32.9M |
| Operating income | $14.8M | $14.9M | $17.7M | $17.1M | $18.4M |
| Net income | $10.1M | -$31.7M | $11.3M | $11.8M | $13.3M |
| EPS (diluted) | $1.22 | -$3.48 | $1.14 | $1.16 | $1.29 |
| Q4 2024 | Q1 2025 | Q2 2025 | Q3 2025 | Q4 2025 | Q1 2026 | Q2 2026 | Q3 2026 | |
|---|---|---|---|---|---|---|---|---|
| Revenue | $13.1M | $27.3M | $36.5M | $17.3M | $14.3M | $30.3M | $45.5M | $17.1M |
| Net income | $140,822 | $5.3M | $7.7M | $538,412 | -$204,339 | $4.9M | $8.7M | $558,900 |
| EPS (diluted) | $0.01 | $0.51 | $0.74 | $0.05 | -$0.02 | $0.47 | $0.84 | $0.05 |
| FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 | |
|---|---|---|---|---|---|
| Operating cash flow | $11.6M | $15.6M | $23.8M | $17.4M | $28.9M |
| Capital expenditure | -$20.0M | -$25.5M | -$25.3M | -$22.1M | -$20.7M |
| Free cash flow | -$8.4M | -$9.9M | -$1.5M | -$4.7M | $8.2M |
| Dividends paid | -$6.0M | -$7.0M | -$7.8M | -$8.1M | -$8.5M |
| Net share buybacks | $4.9M | $29.0M | $3.9M | $4.7M | $1.8M |
Cash outflows are shown as negative numbers.
- Cash and short-term investments
- $2.5M
- Total assets
- $339.7M
- Total liabilities
- $216.8M
- Total debt
- $148.8M
- Net debt
- $146.3M
- Shareholders’ equity
- $122.9M
As of Jun 30, 2026 (filed Aug 6, 2026).
Dividends
| Ex-date | Amount | Paid |
|---|---|---|
| Oct 16, 2026 | $0.22 | Nov 2, 2026 |
| Jul 17, 2026 | $0.22 | Aug 3, 2026 |
| Apr 17, 2026 | $0.22 | May 1, 2026 |
| Jan 16, 2026 | $0.22 | Feb 2, 2026 |
| Oct 17, 2025 | $0.21 | Nov 3, 2025 |
| Jul 18, 2025 | $0.21 | Aug 1, 2025 |
| Apr 17, 2025 | $0.21 | May 1, 2025 |
| Jan 17, 2025 | $0.21 | Feb 1, 2025 |
Short interest
- Shares sold short
- 124,250
- Days to cover
- 9.63
- Change vs previous report
- -4.3%
FINRA short interest, settlement date Sep 15, 2026.
Stock splits
- Mar 2, 2017
- 3-for-2
- Sep 2, 2011
- 2-for-1
- Jul 5, 1994
- 2-for-1