Overview
Key stats
Fundamentals Sep 10- Open
- $19.34
- 52-wk high
- $28.27
- High
- $19.95
- 52-wk low
- $17.09
- Low
- $19.34
- Prev close
- $19.35
- Mkt cap
- $916.2M
- P/E
- 19.2x
- Volume
- 969.0K
- Fwd P/E
- 15.9x
- Beta
- 1.68
- P/S
- 1.1x
- P/B
- 3.0x
- Profit margin
- +5.7%
- Op margin
- +10.6%
- ROE
- +16.2%
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
Earnings
Earnings came in 14.3% above what analysts expected.
Earnings per share
$0.40+14.3%
$0.35 expected
Reports Sep 10, 2026, today
EPS expected
$0.35
$0.35 to $0.36
Revenue expected
$230.3M
3 analysts
Last 30 days
0up1down
Analysts cutting estimates
Financials
What it sold, what it cost, what was left.
Oct 2025Jan 2026Apr 2026Jul 2026
| USD | Oct 2025 | Jan 2026 | Apr 2026 | Jul 2026 |
|---|---|---|---|---|
| What came in | ||||
| Revenue | $229.3M | $181.9M | $208.6M | $234.6M |
| Cost of what it sold | $167.4M | $138.2M | $150.1M | $163.0M |
| Gross profit | $61.8M | $43.6M | $58.5M | $71.6M |
| What it spent | ||||
| Research and development | $10.4M | $10.5M | $11.8M | $12.1M |
| Sales and admin | $13.8M | $15.8M | $16.0M | $15.6M |
| Other operating costs | $16.1M | $15.3M | $16.6M | $19.0M |
| Total operating expenses | $40.3M | $41.7M | $44.4M | $46.7M |
| What was left | ||||
| Operating profit | $21.6M | $1.9M | $14.1M | $24.9M |
| Interest on debt | $558.0K | $1.6M | $1.1M | $1.1M |
| Profit before tax | $21.9M | $3.5M | $10.7M | $25.7M |
| Tax | $4.4M | $502.0K | $2.3M | $6.2M |
| Net profit | $17.5M | $3.0M | $8.4M | $19.4M |
| EBITDA | $26.3M | $7.1M | $14.9M | $29.6M |
Technicals
Price structure
This stock is under pressure.
Trend
Under pressure
35 / 100
RSI 14
54balanced
20D volatility
23%annualized
52-week range
$17.09$28.27
20D support
$18.90recent floor
20D resistance
$21.82recent ceiling
Returns
5D +0.7%20D -7.6%60D -5.9%
Price vs moving averages
SMA20 +0.1%SMA50 -1.3%SMA200 -4.5%
Volume pace
1.55xvs prior 20D