Revenue
2018
2019
2020
2021
2022
2023
2024
2025
| 2025 | 2024 | 2023 | 2022 | 2021 | 2020 | 2019 | 2018 | 2017 | 2010 | 2009 | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $26.6M | $20.3M | $19.4M | $22.2M | $21.3M | $20.0M | $25.1M | $18.0M | $18.0M | $11.5M | $13.2M |
| Gross profit | $17.7M | $14.2M | $13.0M | $15.2M | $14.8M | $12.7M | $16.4M | $12.7M | $12.0M | $5.3M | $6.9M |
| Research & development | $2.4M | $2.2M | $2.1M | $2.2M | $3.0M | $3.2M | $2.8M | $2.6M | $1.4M | $1.8M | $2.7M |
| Operating expenses | $13.1M | $10.6M | $10.3M | $10.2M | $10.9M | $9.9M | $10.2M | $9.4M | $8.1M | $8.1M | $13.6M |
| Operating income | $4.5M | $3.6M | $2.7M | $5.0M | $3.8M | $2.8M | $6.3M | $3.3M | $3.8M | −$2.8M | −$6.7M |
| EBITDAderived | $5.4M | $4.3M | $3.3M | $5.7M | $4.8M | $3.6M | $7.1M | $4.1M | $4.8M | −$2.5M | −$6.1M |
| Net income | $4.1M | $3.6M | $3.1M | $4.3M | $4.9M | $3.3M | $5.2M | $5.0M | $3.3M | −$1.8M | −$9.4M |
| Basic EPSper diluted share | $0.37 | $0.33 | $0.28 | $0.40 | $0.46 | $0.31 | $0.49 | $0.49 | $0.37 | -$0.04 | -$0.19 |
| Diluted EPSper diluted share | $0.37 | $0.32 | $0.28 | $0.38 | $0.44 | $0.30 | $0.49 | $0.49 | $0.36 | -$0.04 | -$0.19 |
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| Mar 19, 2026Form 4 | Jardine Gayle MichelleInterim CFO | SellCOMMON | 2.3K | $12.59 | $28.4K | 2.5K |
| Mar 11, 2026Form 4 | Emerson John StevenTenPercentOwner | SellCommon Stock · indirect | 3.0K | $14.45 | $43.4K | 5.3K |
| Mar 11, 2026Form 4 | Emerson John StevenTenPercentOwner | SellCommon Stock · indirect | 3.0K | $14.45 | $43.4K | 5.3K |
| Mar 11, 2026Form 4 | Emerson John StevenTenPercentOwner | SellCommon Stock · indirect | 1.0K | $14.45 | $14.4K | 309.9K |
| Mar 11, 2026Form 4 | Emerson John StevenTenPercentOwner | SellCommon Stock · indirect | 79.3K | $14.99 | $1.19M | 34.0K |