
| Line item | FY2025 | FY2024 | FY2023 | FY2022 | FY2021 | FY2020 | FY2019 | FY2018 | FY2017 | FY2016 | FY2015 | FY2014 | FY2013 | FY2012 | FY2011 | FY2010 | FY2009 | FY2008 | FY2007 | FY2006 | FY2005 | FY2004 | FY2003 | FY2002 | FY2001 | FY2000 | FY1999 | FY1998 | FY1997 | FY1996 | FY1995 | FY1994 | FY1993 | FY1992 | FY1991 | FY1990 | FY1989 | FY1988 | FY1987 | FY1986 | FY1985 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valuation | |||||||||||||||||||||||||||||||||||||||||
| Market cap | $52,277 | $39,345 | $48,796 | $46,758 | $83,002 | $35,127 | $37,165 | $30,571 | $49,913 | $48,474 | $56,307 | $60,636 | $60,717 | $49,404 | $40,813 | $57,909 | $29,910 | $5,205 | $13,319 | $14,111 | $14,251 | $25,452 | $29,312 | $16,917 | $28,610 | $34,762 | $35,550 | $39,164 | $33,511 | $21,949 | $17,852 | $16,264 | $18,356 | $12,033 | $4,932 | $4,474 | $7,483 | $8,976 | $7,091 | $5,605 | $3,899 |
| Enterprise value | $181,391 | $161,882 | $159,757 | $143,087 | $172,997 | $148,285 | $159,280 | $150,867 | $165,301 | $152,634 | $154,000 | $125,467 | $118,886 | $103,258 | $88,804 | $112,114 | $102,032 | $93,671 | $110,132 | $131,831 | $126,108 | $156,798 | $200,039 | $154,278 | $178,452 | $182,351 | $162,032 | $146,366 | $179,305 | $161,207 | $151,380 | $133,413 | $122,110 | $105,365 | $94,212 | $93,226 | $87,637 | $72,363 | $629 | $493 | $1,427 |
| P/E (TTM) at period end | – | 6.69× | 11.23× | – | 4.63× | – | 790.75× | 8.31× | 6.46× | 10.56× | 7.64× | 49.26× | 5.06× | 8.73× | 2.01× | 8.33× | 10.47× | – | – | – | 8.43× | 7.00× | 59.22× | – | – | 10.03× | 4.91× | 1.77× | 4.84× | 4.94× | 4.31× | 3.06× | 7.26× | – | – | 5.20× | 1.95× | 1.69× | 1.53× | 1.71× | 1.55× |
| P/S (TTM) at period end | 0.28× | 0.21× | 0.28× | 0.30× | 0.61× | 0.28× | 0.24× | 0.19× | 0.32× | 0.32× | 0.38× | 0.42× | 0.41× | 0.37× | 0.30× | 0.45× | 0.26× | 0.04× | 0.08× | 0.09× | 0.08× | 0.15× | 0.18× | 0.10× | 0.18× | 0.20× | 0.22× | 0.27× | 0.22× | 0.15× | 0.13× | 0.13× | 0.17× | 0.12× | 0.06× | 0.05× | 0.08× | 0.10× | 0.10× | 0.09× | 0.07× |
| P/B at period end | 1.45× | 0.88× | 1.14× | 1.08× | 1.71× | 1.14× | 1.12× | 0.85× | 1.40× | 1.66× | 1.97× | 2.48× | 2.32× | 3.11× | 2.76× | – | – | – | 2.37× | – | 1.10× | 1.59× | 2.52× | 3.03× | 3.67× | 1.87× | 1.29× | 1.67× | 1.09× | 0.82× | 0.73× | 0.75× | 1.08× | 0.76× | 0.21× | 0.19× | 0.32× | 0.42× | 0.38× | 0.38× | 0.32× |
| EV / EBITDA (TTM) | – | 12.66× | 12.15× | 10.28× | 14.61× | 34.14× | 15.52× | 11.99× | 11.71× | 19.28× | 10.28× | 16.26× | 5.36× | 7.17× | 5.60× | 5.99× | 15.14× | 11.83× | 8.65× | 15.83× | 19.57× | 8.77× | 8.98× | 6.41× | 7.83× | 5.42× | 5.33× | 5.19× | 5.26× | 5.82× | 5.89× | 5.44× | 7.49× | 9.11× | 8.01× | 6.79× | 4.81× | 4.55× | – | – | – |
| EV / Sales (TTM) | 0.97× | 0.88× | 0.91× | 0.91× | 1.27× | 1.17× | 1.02× | 0.94× | 1.05× | 1.01× | 1.03× | 0.87× | 0.81× | 0.77× | 0.65× | 0.87× | 0.88× | 0.65× | 0.65× | 0.82× | 0.71× | 0.91× | 1.22× | 0.95× | 1.11× | 1.07× | 1.01× | 1.02× | 1.17× | 1.10× | 1.10× | 1.04× | 1.13× | 1.05× | 1.07× | 0.95× | 0.91× | 0.78× | 0.01× | 0.01× | 0.03× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | (22.8%) | 13.1% | 10.2% | (4.6%) | 37.0% | (4.2%) | 0.1% | 10.2% | 21.7% | 15.7% | 25.7% | 5.0% | 45.9% | 35.6% | 137.5% | – | – | – | (49.7%) | – | 13.1% | 22.6% | 4.2% | (17.5%) | (70.0%) | 18.6% | 26.3% | 94.3% | 22.5% | 16.6% | 16.9% | 24.5% | 14.8% | (46.6%) | (9.6%) | 3.6% | 16.3% | 24.6% | 25.0% | 22.1% | 20.5% |
| Return on invested capital | (3.5%) | 2.3% | 3.2% | 2.8% | 2.7% | (2.6%) | – | 1.6% | 2.7% | 2.5% | 3.4% | 0.2% | 10.3% | 6.2% | 11.5% | 13.3% | (0.9%) | (4.3%) | (0.2%) | (4.7%) | (0.2%) | 2.4% | 3.6% | 3.8% | 1.5% | 6.6% | 6.1% | 8.4% | 7.0% | 5.7% | 5.5% | 6.4% | 4.8% | 4.4% | 4.5% | 5.8% | 8.7% | 10.1% | 32.4% | 27.0% | 19.4% |
| Dividend yield | 5.7% | 7.9% | 10.2% | 4.3% | 0.5% | 1.7% | 6.4% | 9.5% | 5.2% | 7.0% | 4.2% | 3.2% | 2.6% | 1.5% | – | – | – | – | – | 3.3% | 5.2% | 2.9% | 2.5% | 4.4% | 6.7% | 7.9% | 6.4% | 13.7% | 6.0% | 8.2% | 8.7% | 7.4% | 5.9% | 8.1% | 18.8% | 33.3% | 24.8% | 13.3% | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 1.07× | 1.16× | 1.20× | 1.20× | 1.20× | 1.20× | 1.16× | 1.20× | 1.23× | 1.20× | 1.25× | 2.42× | 2.51× | 2.08× | 2.16× | 2.23× | 2.96× | 2.52× | 2.76× | 2.28× | 2.09× | 3.99× | 2.09× | 1.94× | 0.81× | 0.81× | 1.02× | 1.02× | 1.02× | 0.95× | 0.88× | 1.03× | 0.28× | 1.90× | 0.31× | 0.33× | 1.95× | 2.10× | 1.24× | 1.18× | 1.10× |
| Debt / equity | 4.54× | 3.54× | 3.49× | 3.21× | 2.85× | 1.68× | 1.64× | 1.51× | 4.34× | 6.60× | 4.64× | 6.48× | 5.84× | 9.06× | 9.46× | (216.42×) | (17.02×) | (9.84×) | 29.94× | (39.62×) | 7.19× | 6.64× | 12.89× | 29.02× | 21.49× | 8.90× | 5.52× | 5.65× | 5.47× | 5.92× | 6.05× | 6.05× | 3.28× | 6.32× | 4.15× | 3.97× | 3.63× | 3.25× | 0.20× | 0.23× | 0.28× |
| Effective tax rate | 31.0% | 18.5% | (9.1%) | 28.6% | (0.7%) | (14.3%) | 113.1% | 15.0% | 4.9% | 32.2% | 28.1% | 0.3% | 16.9% | 26.5% | (132.9%) | 8.3% | (4.3%) | 0.4% | 39.2% | 17.6% | (78.3%) | 20.4% | 9.2% | 32.1% | 28.3% | 33.3% | 33.0% | 11.4% | 34.2% | 31.9% | 35.5% | 37.9% | 33.7% | (232.3%) | 14.9% | 38.1% | 35.5% | 36.1% | 37.1% | 35.1% | 30.5% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 3,979 | 4,021 | 4,041 | 4,014 | 4,034 | 3,973 | 4,004 | 3,998 | 3,998 | 3,999 | 4,002 | 3,958 | 4,087 | 4,015 | 4,111 | 4,178 | 3,312 | 2,272 | 1,979 | 1,879 | 1,870 | 1,899 | 1,894 | 1,819 | 1,820 | 1,501 | 1,237 | 1,239 | 1,934 | 1,891 | 1,811 | 1,587 | 1,549 | 1,527 | 954 | 935 | 945 | 980 | 1,039 | 1,084 | 1,133 |
| Line item | TTM | FY2025 | FY2024 | FY2023 | FY2022 | FY2021 | FY2020 | FY2019 | FY2018 | FY2017 | FY2016 | FY2015 | FY2014 | FY2013 | FY2012 | FY2011 | FY2010 | FY2009 | FY2008 | FY2007 | FY2006 | FY2005 | FY2004 | FY2003 | FY2002 | FY2001 | FY2000 | FY1999 | FY1998 | FY1997 | FY1996 | FY1995 | FY1994 | FY1993 | FY1992 | FY1991 | FY1990 | FY1989 | FY1988 | FY1987 | FY1986 | FY1985 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and gross profit | ||||||||||||||||||||||||||||||||||||||||||
| Revenue | $187,973 | $187,267 | $184,992 | $176,191 | $158,057 | $136,341 | $127,144 | $155,900 | $160,338 | $156,776 | $151,800 | $149,558 | $144,077 | $146,917 | $133,559 | $135,605 | $128,954 | $116,283 | $143,584 | $168,884 | $160,065 | $176,896 | $171,652 | $164,338 | $162,258 | $160,504 | $170,058 | $160,658 | $143,350 | $153,627 | $146,991 | $137,137 | $128,439 | $108,521 | $100,132 | $88,286 | $97,650 | $96,146 | $92,446 | $71,643 | $62,716 | $52,774 |
| Cost of revenue | ($172,560) | ($174,466) | ($158,434) | ($150,550) | ($134,397) | ($114,651) | ($112,752) | ($134,693) | ($136,269) | ($131,321) | ($126,195) | ($124,446) | ($125,025) | ($120,190) | ($113,039) | ($113,611) | ($104,451) | ($98,866) | ($126,620) | ($141,956) | ($146,961) | ($144,121) | ($140,924) | ($129,685) | ($125,027) | ($128,348) | ($131,085) | ($126,664) | ($112,652) | ($117,706) | ($118,586) | ($110,595) | ($102,910) | ($91,762) | ($88,804) | ($70,371) | ($78,004) | ($72,616) | ($68,233) | ($58,495) | ($51,866) | ($44,435) |
| Gross profit | $15,413 | $12,801 | $26,558 | $25,641 | $23,660 | $21,690 | $14,392 | $21,207 | $24,069 | $25,455 | $25,605 | $25,112 | $19,052 | $26,727 | $20,520 | $21,994 | $24,503 | $17,417 | $16,964 | $26,928 | $13,104 | $32,775 | $30,728 | $34,653 | $37,231 | $32,156 | $38,973 | $33,994 | $30,698 | $35,921 | $28,405 | $26,542 | $25,529 | $16,759 | $11,328 | $17,915 | $19,646 | $23,530 | $24,212 | $13,148 | $10,850 | $8,339 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | ($9,400) | ($8,000) | ($8,200) | ($7,800) | ($7,600) | ($7,100) | ($7,400) | ($8,200) | ($8,000) | ($7,300) | ($6,700) | ($6,700) | ($6,200) | ($5,500) | ($5,300) | ($5,000) | ($4,700) | ($7,100) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($11,203) | ($10,849) | ($10,287) | ($10,702) | ($10,888) | ($11,915) | ($10,193) | ($11,161) | ($11,403) | ($11,527) | ($10,972) | ($10,763) | ($11,842) | ($10,850) | ($11,529) | ($10,884) | ($11,909) | ($13,029) | ($21,065) | ($20,823) | ($19,148) | ($24,571) | ($11,455) | ($26,642) | ($28,249) | ($18,572) | ($11,847) | ($8,874) | ($7,834) | ($7,995) | ($6,625) | ($6,044) | ($5,424) | ($4,856) | ($4,434) | ($6,153) | ($5,921) | ($5,321) | ($8,307) | ($3,780) | ($3,834) | ($3,216) |
| Total operating expenses | ($22,445) | ($21,970) | ($21,339) | ($20,183) | ($17,384) | ($17,167) | ($18,800) | ($20,633) | ($20,866) | ($20,574) | ($19,819) | ($18,131) | ($18,720) | ($11,058) | ($11,606) | ($10,848) | ($11,693) | ($18,346) | ($21,972) | ($27,359) | ($21,294) | ($33,054) | ($25,897) | ($26,642) | ($28,249) | ($28,668) | ($21,255) | ($18,128) | ($16,423) | ($15,640) | ($13,500) | ($12,544) | ($10,334) | ($7,920) | ($6,523) | ($11,931) | ($9,106) | ($9,550) | ($10,765) | ($6,947) | ($6,793) | ($5,609) |
| Total costs and expenses | ($195,005) | ($196,436) | ($179,773) | ($170,733) | ($151,781) | ($131,818) | ($131,552) | ($155,326) | ($157,135) | ($151,895) | ($146,014) | ($142,577) | ($143,745) | ($131,248) | ($124,645) | ($124,459) | ($116,144) | ($117,212) | ($148,592) | ($169,315) | ($168,255) | ($177,175) | ($166,821) | ($156,327) | ($153,276) | ($157,016) | ($152,340) | ($144,792) | ($129,075) | ($133,346) | ($132,086) | ($123,139) | ($113,244) | ($99,682) | ($95,327) | ($82,302) | ($87,110) | ($82,166) | ($78,998) | ($65,442) | ($58,659) | ($50,045) |
| Operating income | ($7,032) | ($9,169) | $5,219 | $5,458 | $6,276 | $4,523 | ($4,408) | $574 | $3,203 | $4,881 | $5,786 | $6,981 | $332 | $15,669 | $8,914 | $11,146 | $12,810 | ($929) | ($5,008) | ($431) | ($8,190) | ($279) | $4,831 | $8,011 | $8,982 | $3,488 | $17,718 | $15,866 | $14,275 | $20,281 | $14,905 | $13,998 | $15,195 | $8,839 | $4,805 | $5,984 | $10,540 | $13,980 | $13,448 | $6,201 | $4,056 | $2,730 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $803 | ($1,335) | $12,786 | $13,148 | $13,918 | $11,841 | $4,343 | $10,263 | $12,588 | $14,122 | $7,916 | $14,974 | $7,717 | $22,173 | $14,400 | $15,863 | $18,710 | $6,738 | $7,917 | $12,727 | $8,329 | $6,443 | $17,883 | $22,277 | $24,062 | $22,779 | $33,667 | $30,408 | $28,178 | $34,065 | $27,696 | $25,717 | $24,531 | $16,307 | $11,560 | $11,762 | $13,725 | $18,209 | $15,905 | – | – | – |
| Interest income | $1,380 | $1,490 | $1,540 | $1,567 | $639 | $254 | $452 | $809 | $667 | $459 | $291 | $309 | $244 | $213 | $342 | $471 | $348 | $312 | $951 | – | $1,478 | – | $988 | – | – | – | $1,488 | $1,418 | $1,325 | $1,116 | $841 | $800 | $665 | $563 | $653 | – | – | – | – | – | – | – |
| Interest expense | ($1,376) | ($1,254) | ($1,115) | ($7,613) | ($4,593) | ($4,593) | ($46) | ($5,409) | ($5,157) | ($4,364) | ($894) | ($773) | ($797) | ($3,689) | ($3,828) | ($4,431) | ($6,152) | ($6,790) | ($9,737) | ($10,989) | ($8,783) | ($1,220) | ($1,221) | – | – | – | ($1,383) | ($1,347) | ($795) | ($788) | ($695) | ($622) | ($721) | ($807) | ($860) | – | – | – | – | – | – | – |
| Pre-tax income | ($12,113) | ($11,830) | $7,233 | $3,967 | ($3,016) | $17,780 | ($1,116) | ($640) | $4,345 | $8,159 | $6,784 | $10,252 | $1,234 | $14,371 | $7,638 | $8,681 | $7,149 | $2,599 | ($15,276) | ($3,746) | ($15,074) | $1,079 | $4,598 | $1,339 | $1,064 | ($7,419) | $8,115 | $9,854 | $24,280 | $10,939 | $6,793 | $6,705 | $8,789 | $4,003 | ($127) | ($2,653) | $1,390 | $5,947 | $8,299 | $7,351 | $5,059 | $3,618 |
| Income tax expense | $4,736 | $3,668 | ($1,339) | $362 | $864 | $130 | ($160) | $724 | ($650) | ($402) | ($2,184) | ($2,881) | ($4) | ($2,425) | ($2,026) | $11,541 | ($592) | $113 | $62 | $1,467 | $2,655 | $845 | ($937) | ($123) | ($342) | $2,096 | ($2,705) | ($3,248) | ($2,760) | ($3,741) | ($2,166) | ($2,379) | ($3,329) | ($1,350) | ($295) | $395 | ($530) | ($2,112) | ($2,999) | ($2,726) | ($1,774) | ($1,103) |
| Net income | ($7,393) | ($8,182) | $5,879 | $4,347 | ($1,981) | $17,937 | ($1,279) | $47 | $3,677 | $7,731 | $4,589 | $7,373 | $1,231 | $11,953 | $5,613 | $20,213 | $6,561 | $2,717 | ($14,766) | ($2,795) | ($12,613) | $1,691 | $3,634 | $495 | ($980) | ($5,453) | $3,467 | $7,237 | $22,071 | $6,920 | $4,446 | $4,139 | $5,308 | $2,529 | ($7,385) | ($2,258) | $860 | $3,835 | $5,300 | $4,625 | $3,285 | $2,515 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | ($1.87) | ($2.06) | $1.46 | $1.08 | ($0.49) | $4.45 | ($0.32) | $0.01 | $0.92 | $1.93 | $1.15 | $1.84 | $0.31 | $2.94 | $1.41 | $4.94 | $1.66 | $0.86 | ($6.50) | ($1.41) | ($6.71) | $0.77 | $1.52 | $0.26 | ($0.55) | ($3.00) | $2.30 | $5.86 | $17.76 | $3.58 | $2.32 | $2.12 | $2.83 | $1.34 | ($4.97) | ($2.39) | $0.92 | $4.06 | $5.41 | $4.45 | $3.03 | $2.22 |
| Basic EPS (GAAP) | ($1.86) | ($2.06) | $1.48 | $1.09 | ($0.49) | $4.49 | ($0.32) | $0.01 | $0.93 | $1.94 | $1.16 | $1.86 | $0.31 | $3.04 | $1.47 | $5.33 | $1.90 | $0.91 | ($6.50) | ($1.41) | ($6.71) | $0.78 | $1.66 | $0.27 | ($0.55) | ($3.00) | $2.34 | $5.99 | $18.17 | $3.66 | $2.37 | $2.28 | $3.16 | $1.44 | ($4.97) | ($2.39) | $0.94 | $4.11 | $5.48 | $4.52 | $3.03 | $2.29 |
| Basic shares outstanding | 3,985 | 3,979 | 3,978 | 3,998 | 4,014 | 3,991 | 3,973 | 3,972 | 3,974 | 3,975 | 3,973 | 3,969 | 3,912 | 3,935 | 3,815 | 3,793 | 3,449 | 2,992 | 2,273 | 1,979 | 1,879 | 1,846 | 1,739 | 1,832 | 1,819 | 1,820 | 1,483 | 1,210 | 1,211 | 1,877 | 1,852 | 1,683 | 1,587 | 1,549 | 1,527 | 954 | 915 | 933 | 967 | 1,023 | 1,084 | 1,098 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 8.2% | 6.8% | 14.4% | 14.6% | 15.0% | 15.9% | 11.3% | 13.6% | 15.0% | 16.2% | 16.9% | 16.8% | 13.2% | 18.2% | 15.4% | 16.2% | 19.0% | 15.0% | 11.8% | 15.9% | 8.2% | 18.5% | 17.9% | 21.1% | 22.9% | 20.0% | 22.9% | 21.2% | 21.4% | 23.4% | 19.3% | 19.4% | 19.9% | 15.4% | 11.3% | 20.3% | 20.1% | 24.5% | 26.2% | 18.4% | 17.3% | 15.8% |
| Operating margin | (3.7%) | (4.9%) | 2.8% | 3.1% | 4.0% | 3.3% | (3.5%) | 0.4% | 2.0% | 3.1% | 3.8% | 4.7% | 0.2% | 10.7% | 6.7% | 8.2% | 9.9% | (0.8%) | (3.5%) | (0.3%) | (5.1%) | (0.2%) | 2.8% | 4.9% | 5.5% | 2.2% | 10.4% | 9.9% | 10.0% | 13.2% | 10.1% | 10.2% | 11.8% | 8.1% | 4.8% | 6.8% | 10.8% | 14.5% | 14.5% | 8.7% | 6.5% | 5.2% |
| Net margin | (3.9%) | (4.4%) | 3.2% | 2.5% | (1.3%) | 13.2% | (1.0%) | 0.0% | 2.3% | 4.9% | 3.0% | 4.9% | 0.9% | 8.1% | 4.2% | 14.9% | 5.1% | 2.3% | (10.3%) | (1.7%) | (7.9%) | 1.0% | 2.1% | 0.3% | (0.6%) | (3.4%) | 2.0% | 4.5% | 15.4% | 4.5% | 3.0% | 3.0% | 4.1% | 2.3% | (7.4%) | (2.6%) | 0.9% | 4.0% | 5.7% | 6.5% | 5.2% | 4.8% |