Overview
Key stats
Fundamentals Sep 10- Open
- $42.93
- 52-wk high
- $46.18
- High
- $43.95
- 52-wk low
- $32.90
- Low
- $42.93
- Prev close
- $43.38
- Mkt cap
- $281.8M
- P/E
- 11.3x
- Volume
- 16.2K
- Fwd P/E
- 5.3x
- Beta
- 0.50
- Div yield
- 2.40%
- P/S
- 3.1x
- P/B
- 1.3x
- Profit margin
- +27.7%
- Op margin
- +33.4%
- ROE
- +12.4%
What do analysts expect?
Analyst target and ratings are on paid plans
See the 12-month consensus target and the buy/hold/sell rating split.
Unlock the full resultsSmart money
8 funds hold a position and insiders have been net buying.
What insiders are doing
10 trades · 6 mo
Bought$25KSold$263K
Earnings
Earnings came in 7.6% above what analysts expected.
Earnings per share
$1.13+7.6%
$1.05 expected
Reports Oct 19, 2026, in 39 days
EPS expected
$1.16
$1.16 to $1.16
Revenue expected
$24.5M
1 analysts
Last 30 days
2up0down
Analysts raising estimates
Estimate drift
+0.04
Change in 30 days
Financials
What it sold, what it cost, what was left.
Sep 2025Dec 2025Mar 2026Jun 2026
| USD | Sep 2025 | Dec 2025 | Mar 2026 | Jun 2026 |
|---|---|---|---|---|
| What came in | ||||
| Revenue | $31.1M | $29.5M | $30.9M | $31.5M |
| Cost of what it sold | $8.8M | $8.9M | $8.5M | $8.4M |
| Gross profit | $22.2M | $20.6M | $22.4M | $23.1M |
| What it spent | ||||
| Sales and admin | $7.9M | $8.7M | $9.6M | $9.6M |
| Other operating costs | $5.1M | $4.3M | $4.0M | $6.1M |
| Total operating expenses | $13.0M | $13.0M | $13.6M | $15.7M |
| What was left | ||||
| Operating profit | $9.2M | $7.6M | $8.8M | $7.4M |
| Interest on debt | $8.4M | $8.2M | $7.6M | $7.6M |
| Profit before tax | $9.2M | $7.6M | $8.8M | $7.4M |
| Tax | $2.3M | $1.9M | $2.2M | $1.7M |
| Net profit | $6.9M | $5.8M | $6.7M | $5.7M |
| EBITDA | $10.0M | $8.3M | $9.6M | $7.4M |
Technicals
Price structure
This stock's price action is mixed.
Trend
Mixed
40 / 100
RSI 14
51balanced
20D volatility
25%annualized
52-week range
$32.90$46.18
20D support
$41.45recent floor
20D resistance
$46.18recent ceiling
Returns
5D +3.6%20D -3.8%60D +4.9%
Price vs moving averages
SMA20 -0.4%SMA50 -1.3%SMA200 +10.9%
Volume pace
0.56xvs prior 20D