Revenue
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
| 2025 | 2024 | 2023 | 2022 | 2021 | 2020 | 2019 | 2018 | 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011 | 2010 | 2009 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | $84.3M | $47.2M | $34.8M | $27.7M | $23.0M | $21.6M | $17.6M | $13.9M | $16.8M | $28.0M | $20.1M | $44.1M | $31.6M | $24.6M | $25.7M | $25.3M | $36.7M |
| Gross profit | $40.5M | $25.9M | $21.3M | $16.7M | $12.8M | $11.8M | $9.9M | $6.5M | $8.1M | $16.5M | $6.9M | $13.6M | $12.6M | $10.5M | $13.8M | $13.7M | $18.8M |
| Gross margin | 48.06% | 54.90% | 61.22% | 60.11% | 55.46% | 54.65% | 56.32% | 47.21% | 48.36% | 58.95% | 34.54% | 30.81% | 39.99% | 42.76% | 53.59% | 54.39% | 51.28% |
| Research & development | $4.0M | $4.1M | $3.1M | $2.7M | $2.6M | $3.0M | $2.5M | $3.6M | $4.5M | $4.9M | $2.7M | $2.6M | $2.6M | $2.7M | $5.5M | $5.2M | $5.3M |
| Operating expenses | $20.4M | $16.3M | $14.0M | $9.5M | $8.9M | $9.1M | $8.4M | $10.2M | $8.2M | $14.0M | $10.6M | $13.7M | $10.7M | $10.1M | $13.2M | $13.3M | $14.0M |
| Operating income | $20.1M | $9.7M | $7.4M | $7.2M | $3.9M | $2.7M | $1.5M | −$3.7M | −$77,565 | $2.4M | −$3.6M | −$142,868 | $1.9M | $416,512 | $607,907 | $403,467 | $4.9M |
| Operating margin | 23.81% | 20.47% | 21.14% | 26.01% | 16.93% | 12.71% | 8.70% | −26.80% | −0.46% | 8.74% | −18.04% | −0.32% | 6.11% | 1.69% | 2.36% | 1.60% | 13.28% |
| EBITDA | $23.8M | $11.8M | $8.1M | $7.6M | $4.3M | $3.2M | $2.0M | −$3.3M | $371,624 | $2.9M | −$3.1M | $433,610 | $2.5M | $945,837 | $1.3M | $1.2M | $6.0M |
| EBITDA margin | 28.24% | 24.92% | 23.15% | 27.34% | 18.80% | 14.71% | 11.27% | −23.65% | 2.21% | 10.50% | −15.20% | 0.98% | 7.83% | 3.85% | 4.97% | 4.87% | 16.23% |
| Net income | $15.6M | $7.0M | $6.0M | $5.5M | $5.1M | $3.3M | $1.9M | −$3.7M | $4.6M | $2.0M | −$5.9M | — | — | — | — | — | — |
| Net profit margin | 18.54% | 14.83% | 17.32% | 19.91% | 21.98% | 15.14% | 10.53% | −26.38% | 27.22% | 7.10% | −29.23% | — | — | — | — | — | — |
| Basic EPSper basic share | $0.89 | $0.40 | $0.35 | $0.32 | $0.29 | $0.19 | $0.11 | -$0.22 | $0.27 | $0.12 | -$0.35 | $0.01 | $0.11 | $0.18 | $0.04 | $0.04 | $0.30 |
| Diluted EPSper diluted share | $0.88 | $0.40 | $0.35 | $0.32 | $0.29 | $0.19 | $0.11 | -$0.22 | $0.27 | $0.12 | -$0.35 | $0.01 | $0.11 | $0.18 | $0.04 | $0.04 | $0.30 |
| Transaction | Insider | Type | Shares | Price | Value | Owned after |
|---|---|---|---|---|---|---|
| Jun 30, 2025Form 4 | Harborne ChristopherTenPercentOwner | SellCommon Stock, par value $0.001 per share · indirect | 145.0K | $13.69 | $1.99M | 1.58M |
| Jun 27, 2025Form 4 | Harborne ChristopherTenPercentOwner | SellCommon Stock, par value $0.001 per share · indirect | 31.6K | $13.91 | $439.3K | 1.73M |
| Jun 27, 2025Form 4 | Harborne ChristopherTenPercentOwner | SellCommon Stock, par value $0.001 per share · indirect | 40.9K | $13.50 | $552.4K | 1.76M |
| Jun 26, 2025Form 4 | Harborne ChristopherTenPercentOwner | SellCommon Stock, par value $0.001 per share · indirect | 59.7K | $13.21 | $788.2K | 1.80M |
| Jun 25, 2025Form 4 | Harborne ChristopherTenPercentOwner | SellCommon Stock, par value $0.001 per share · indirect | 90.7K | $12.92 | $1.17M | 1.86M |