
| Line item | FY2026 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valuation | ||||||||||||||||||||||||||||||||||||||||
| Market cap | $211,636 | $119,992 | $144,767 | $151,003 | $142,201 | $184,344 | $125,874 | $147,085 | $126,583 | $90,084 | $72,290 | $103,043 | – | – | – | – | – | – | $199,004 | – | – | – | – | $30,073 | $27,492 | $15,214 | $16,587 | $14,237 | $11,197 | $19,742 | $19,065 | $15,496 | $12,812 | $8,908 | $9,506 | $10,046 | $7,433 | $6,494 | $7,067 | $7,625 |
| Enterprise value | $224,576 | $136,874 | $156,495 | $164,925 | $144,899 | $194,419 | $143,770 | $160,869 | $142,395 | $111,801 | $104,052 | $133,154 | – | – | – | – | – | – | $206,116 | – | – | – | – | $35,949 | $26,202 | $18,424 | $21,584 | $21,651 | $19,866 | $30,409 | $29,636 | $22,606 | $19,922 | $15,774 | $14,948 | $15,294 | $12,595 | $12,484 | $11,651 | $11,075 |
| P/E (TTM) at period end | 21.52× | 13.30× | 18.33× | 11.69× | 4.60× | 16.31× | 15.82× | 17.71× | 34.17× | 15.29× | – | 53.95× | – | – | – | – | – | – | 12.93× | – | – | – | – | 19.02× | 24.39× | 14.86× | 17.08× | – | – | 63.07× | 22.83× | 17.75× | 13.53× | 10.86× | 24.37× | 9.28× | 8.78× | 7.82× | 9.37× | 13.05× |
| P/S (TTM) at period end | 3.60× | 2.34× | 2.60× | 2.81× | 2.18× | 3.24× | 3.23× | 3.32× | 2.93× | 2.52× | 2.53× | 2.28× | – | – | – | – | – | – | 3.35× | – | – | – | – | 1.93× | 1.87× | 1.33× | 1.29× | 1.13× | 0.84× | 1.24× | 1.25× | 1.17× | 1.05× | 0.81× | 0.87× | 0.85× | 0.72× | 0.82× | 0.89× | 1.22× |
| P/B at period end | 4.16× | 2.52× | 3.23× | 3.39× | 3.16× | 3.60× | 2.63× | 3.11× | 2.28× | 1.57× | 1.20× | 1.59× | – | – | – | – | – | – | 5.19× | – | – | – | – | 1.79× | 2.23× | 2.71× | 2.68× | 2.52× | 1.54× | 2.06× | 1.97× | 1.82× | 1.71× | 1.46× | 1.49× | 1.90× | 1.27× | 1.29× | 1.50× | 1.38× |
| EV / EBITDA (TTM) | 7.47× | 5.47× | 6.85× | 5.89× | 3.64× | 6.35× | 7.83× | 7.33× | 6.39× | 5.97× | 11.54× | 7.47× | – | – | – | – | – | – | 7.42× | – | – | – | – | 8.03× | 5.95× | 9.78× | 97.67× | – | – | 30.02× | 12.76× | 8.21× | 8.62× | 9.90× | 9.61× | 15.95× | 7.04× | 8.59× | 2841.69× | – |
| EV / Sales (TTM) | 3.82× | 2.67× | 2.81× | 3.06× | 2.23× | 3.42× | 3.69× | 3.63× | 3.30× | 3.13× | 3.64× | 2.95× | – | – | – | – | – | – | 3.47× | – | – | – | – | 2.30× | 1.78× | 1.61× | 1.68× | 1.72× | 1.50× | 1.90× | 1.94× | 1.70× | 1.63× | 1.44× | 1.37× | 1.29× | 1.22× | 1.58× | 1.47× | 1.77× |
| Returns | ||||||||||||||||||||||||||||||||||||||||
| Return on equity | 19.3% | 18.9% | 17.6% | 29.0% | 68.7% | 22.1% | 16.6% | 17.6% | 6.7% | 10.3% | (10.6%) | 2.9% | 18.0% | 16.2% | 24.0% | 41.7% | 26.2% | 14.6% | 40.1% | 45.2% | 43.1% | 29.5% | 18.1% | 9.4% | 9.1% | 18.2% | 15.7% | (26.7%) | (12.7%) | 3.3% | 8.6% | 10.2% | 12.6% | 13.5% | 6.1% | 20.5% | 14.5% | 16.5% | 16.0% | 10.5% |
| Return on invested capital | 21.7% | 18.2% | 18.5% | 26.3% | 48.1% | 23.4% | 14.0% | 16.7% | 11.7% | 9.5% | – | 5.0% | 4.3% | 13.5% | 21.9% | 39.4% | 23.4% | 18.4% | 34.6% | 35.6% | 21.6% | 16.4% | 13.9% | 7.7% | 13.1% | 4.9% | (9.6%) | (20.5%) | (14.8%) | (0.8%) | 2.5% | 5.5% | 5.1% | 3.4% | 2.3% | 0.5% | 5.8% | 4.9% | (4.2%) | 3.1% |
| Dividend yield | 3.2% | 5.3% | 5.3% | 8.8% | 12.6% | 4.3% | 5.5% | 7.7% | 4.1% | 3.2% | 5.7% | 6.3% | – | – | – | – | – | – | 1.6% | – | – | – | – | 2.9% | 3.0% | 7.0% | 2.2% | 2.4% | 2.5% | 2.5% | 2.6% | 2.2% | 2.5% | 2.7% | 3.8% | – | – | – | – | – |
| Financial health | ||||||||||||||||||||||||||||||||||||||||
| Current ratio | 1.88× | 1.46× | 1.70× | 1.23× | 1.69× | 1.63× | 1.45× | 1.89× | 2.51× | 1.85× | 1.44× | 1.27× | 1.23× | 0.94× | 0.93× | 1.28× | 1.93× | 1.90× | 1.32× | 1.08× | 0.99× | 0.92× | 1.21× | 1.20× | 1.10× | 1.03× | 0.89× | 0.94× | 1.17× | 1.15× | 1.05× | 1.14× | 1.06× | 0.91× | 0.77× | 0.95× | 1.21× | 1.29× | 0.85× | 1.15× |
| Debt / equity | 0.45× | 0.45× | 0.38× | 0.47× | 0.30× | 0.34× | 0.53× | 0.53× | 0.49× | 0.54× | 0.63× | 0.49× | 0.44× | 0.48× | 0.43× | 0.27× | 0.33× | 0.41× | 0.33× | 0.36× | 0.37× | 0.51× | 0.35× | 0.43× | – | 0.66× | 0.81× | 1.30× | 1.21× | 0.85× | 0.85× | 0.66× | 0.72× | 0.90× | 0.89× | 1.05× | 0.91× | 1.15× | 1.20× | 0.67× |
| Effective tax rate | 41.9% | 39.3% | 40.2% | 33.1% | 32.4% | 43.7% | 32.7% | 36.7% | 47.5% | 39.9% | 117.4% | 45.5% | 45.5% | 32.1% | 32.5% | 23.4% | 33.5% | 45.4% | 32.0% | 29.8% | 25.6% | 25.9% | 21.0% | 34.8% | 45.3% | 34.7% | 6.7% | (7.6%) | (54.1%) | 68.1% | 41.8% | 45.5% | 37.0% | 33.3% | 58.9% | 28.7% | 34.5% | 32.7% | 41.0% | 43.1% |
| Share count | ||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 5,089 | 2,542 | 2,538 | 2,536 | – | 2,534 | 2,534 | 2,596 | 2,668 | 2,668 | – | 5,318 | 5,338 | 5,340 | 5,346 | 5,540 | 5,595 | 2,799 | 2,802 | 2,933 | 3,033 | 3,078 | 3,123 | 3,111 | 3,021 | 1,838 | 1,835 | 1,802 | 1,750 | 1,796 | 1,659 | 1,596 | 1,378 | 1,324 | 1,259 | 1,543 | 1,508 | 1,479 | 1,606 | 1,829 |
| Line item | TTM | FY2026 | 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and gross profit | |||||||||||||||||||||||||||||||||||||||||
| Revenue | $58,760 | $58,760 | $51,262 | $55,658 | $53,817 | $65,098 | $56,921 | $38,924 | $44,288 | $43,129 | $35,740 | $28,567 | $45,124 | $45,124 | $53,860 | $72,226 | $71,739 | $52,798 | $49,812 | $59,473 | $47,473 | $32,153 | $26,722 | $22,887 | $15,608 | $14,698 | $11,467 | $12,841 | $12,553 | $13,264 | $15,983 | $15,270 | $13,270 | $12,201 | $10,938 | $10,933 | $11,878 | $10,303 | $7,884 | $7,908 | $6,241 |
| Cost of revenue | ($14,351) | ($14,351) | ($9,118) | ($9,930) | ($10,949) | ($9,340) | ($7,746) | ($7,385) | ($7,685) | ($6,538) | ($6,238) | ($6,755) | ($7,882) | ($7,882) | ($8,736) | ($41,813) | ($34,940) | ($31,416) | ($30,897) | ($32,585) | ($25,503) | ($21,044) | ($18,355) | ($16,220) | ($10,965) | ($9,968) | ($7,290) | ($11,241) | ($13,691) | ($14,144) | ($13,812) | ($12,398) | ($9,980) | ($9,493) | ($7,686) | ($8,919) | ($9,908) | ($7,979) | ($5,948) | ($6,641) | ($4,777) |
| Gross profit | $44,409 | $44,409 | $42,144 | $45,728 | $42,868 | $55,758 | $49,509 | $31,768 | $36,887 | $36,591 | $29,709 | $22,250 | $37,242 | $37,242 | $45,639 | $30,413 | $36,799 | $21,382 | $18,914 | $26,888 | $21,970 | $11,109 | $8,367 | $6,667 | $4,643 | $4,730 | $4,177 | $1,600 | ($1,138) | ($880) | $2,171 | $2,873 | $3,290 | $2,708 | $3,253 | $2,014 | $1,970 | $2,324 | $1,936 | $1,267 | $1,464 |
| Operating expenses | |||||||||||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | ($13) | ($43) | ($46) | ($75) | ($74) | ($65) | ($156) | ($244) | ($169) | ($76) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($7,810) | ($7,810) | ($13,461) | ($13,427) | ($12,208) | ($11,552) | ($10,943) | ($9,411) | ($11,533) | ($12,009) | ($10,413) | ($10,274) | ($15,002) | ($15,002) | ($17,396) | ($4,860) | ($4,633) | ($2,331) | ($3,943) | ($2,494) | ($2,127) | ($1,465) | ($1,711) | ($2,014) | ($125) | ($174) | ($1,371) | ($79) | ($93) | ($101) | ($111) | – | – | – | ($1,147) | ($69) | – | – | – | ($60) | ($46) |
| Total operating expenses | ($20,540) | ($20,540) | ($22,680) | ($28,191) | ($19,936) | ($21,652) | ($23,994) | ($18,085) | ($20,774) | ($20,595) | ($17,155) | ($19,446) | ($28,572) | ($28,572) | ($25,607) | ($1,449) | ($4,139) | ($2,708) | ($3,280) | ($2,738) | ($2,378) | ($1,626) | ($1,342) | ($2,465) | ($1,945) | ($2,056) | ($3,519) | ($2,747) | ($1,541) | ($1,482) | ($2,664) | ($1,987) | ($1,722) | ($1,521) | ($2,599) | ($1,364) | ($1,891) | ($1,348) | ($1,141) | ($1,926) | ($972) |
| Total costs and expenses | ($34,891) | ($34,891) | ($31,798) | ($38,121) | ($30,885) | ($30,992) | ($31,406) | ($25,241) | ($28,175) | ($27,133) | ($23,186) | ($25,763) | ($36,454) | ($36,454) | ($33,828) | ($43,262) | ($39,079) | ($34,124) | ($34,177) | ($35,323) | ($27,881) | ($22,670) | ($19,697) | ($18,685) | ($12,910) | ($12,024) | ($10,809) | ($13,988) | ($15,232) | ($15,626) | ($16,476) | ($14,384) | ($11,702) | ($11,014) | ($10,284) | ($10,283) | ($11,799) | ($9,327) | ($7,090) | ($8,567) | ($5,749) |
| Operating income | $23,869 | $23,869 | $19,464 | $17,537 | $22,932 | $34,106 | $25,515 | $13,683 | $16,113 | $15,996 | $12,554 | $2,804 | $8,670 | $8,670 | $20,032 | $28,964 | $32,660 | $18,674 | $15,635 | $24,150 | $19,592 | $9,483 | $7,025 | $4,202 | $2,698 | $2,674 | $658 | ($1,147) | ($2,679) | ($2,362) | ($493) | $886 | $1,568 | $1,187 | $654 | $650 | $79 | $976 | $795 | ($659) | $492 |
| Earnings | |||||||||||||||||||||||||||||||||||||||||
| EBITDA | $30,070 | $30,070 | $25,004 | $22,832 | $27,993 | $39,789 | $30,599 | $18,350 | $21,942 | $22,284 | $18,738 | $9,014 | $17,828 | $16,386 | $26,401 | $35,395 | $37,699 | $23,433 | $19,506 | $27,762 | $22,346 | $12,096 | $8,992 | $6,095 | $4,476 | $4,401 | $1,883 | $221 | ($1,231) | ($981) | $1,013 | $2,322 | $2,753 | $2,310 | $1,593 | $1,556 | $959 | $1,789 | $1,453 | $4 | – |
| Interest income | $604 | $604 | $660 | $709 | $529 | $81 | $67 | $334 | $446 | $322 | $143 | $137 | $88 | $81 | $108 | $225 | $141 | $117 | $196 | $168 | $155 | $123 | $118 | $83 | $65 | $142 | $61 | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($2,059) | ($2,059) | ($1,771) | ($2,198) | ($2,060) | ($1,050) | ($1,290) | ($1,192) | ($1,510) | ($1,567) | ($1,130) | ($969) | ($353) | ($533) | ($623) | ($376) | ($297) | ($197) | ($437) | ($533) | ($328) | ($395) | ($241) | ($476) | ($302) | ($465) | ($282) | ($418) | – | ($448) | ($462) | ($381) | ($292) | ($341) | ($382) | ($423) | ($549) | ($723) | ($549) | ($434) | – |
| Pre-tax income | $22,414 | $22,414 | $18,353 | $16,048 | $21,401 | $33,137 | $24,292 | $12,825 | $15,049 | $14,751 | $11,137 | $1,791 | $8,056 | $8,056 | $20,828 | $23,022 | $31,255 | $19,572 | $11,525 | $23,483 | $19,212 | $14,166 | $8,940 | $4,146 | $2,222 | $2,209 | $1,568 | $1,041 | ($1,402) | ($599) | $981 | $1,436 | $1,601 | $1,503 | $1,229 | $949 | $1,520 | $1,292 | $1,234 | $1,279 | $1,026 |
| Income tax expense | ($9,388) | ($9,388) | ($7,210) | ($6,447) | ($7,077) | ($10,737) | ($10,616) | ($4,197) | ($5,529) | ($7,007) | ($4,443) | ($2,103) | ($3,666) | ($3,666) | ($6,696) | ($7,490) | ($7,309) | ($6,563) | ($5,237) | ($7,521) | ($5,716) | ($3,632) | ($2,312) | ($870) | ($774) | ($1,000) | ($544) | ($70) | ($107) | ($324) | ($668) | ($600) | ($728) | ($556) | ($409) | ($559) | ($437) | ($445) | ($403) | ($525) | ($442) |
| Net income | $9,833 | $9,833 | $9,019 | $7,897 | $12,921 | $30,900 | $11,304 | $7,956 | $8,306 | $3,705 | $5,890 | ($6,385) | $1,910 | $1,910 | $12,535 | $15,473 | $23,648 | $12,722 | $5,830 | $15,390 | $13,416 | $10,450 | $6,396 | $3,403 | $1,581 | $1,127 | $1,024 | $971 | ($1,509) | ($923) | $313 | $835 | $873 | $947 | $820 | $390 | $1,083 | $846 | $830 | $754 | $584 |
| Per share | |||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $1.93 | $1.93 | $3.56 | $3.12 | $5.10 | – | $4.56 | $3.10 | $3.32 | $2.48 | $2.38 | – | $0.36 | $2.59 | $2.10 | $2.89 | $4.27 | $2.28 | $4.18 | $11.00 | $9.16 | $6.90 | $4.16 | $2.18 | $1.00 | $0.84 | $0.96 | $0.44 | ($0.84) | ($0.52) | $0.34 | $1.00 | $1.10 | $1.38 | $1.24 | $0.62 | $1.40 | $1.12 | $1.12 | $0.94 | $0.64 |
| Basic EPS (GAAP) | $1.94 | $1.94 | $3.56 | $3.12 | $5.10 | – | $4.56 | $3.10 | $3.34 | $2.48 | $2.40 | – | $0.36 | $2.60 | $2.11 | $2.91 | $4.29 | $2.29 | $4.19 | $11.01 | $9.18 | $6.93 | $4.18 | $2.19 | $1.00 | $0.84 | $0.96 | $0.44 | ($0.84) | ($0.52) | $0.34 | $1.00 | $1.10 | $1.38 | $1.24 | $0.62 | $1.40 | $1.12 | $1.12 | $0.94 | $0.64 |
| Basic shares outstanding | 5,078 | 5,078 | 2,536 | 2,538 | 2,536 | – | 2,484 | 2,534 | 2,497 | 2,668 | 2,668 | – | 5,315 | 5,321 | 5,322 | 5,323 | 5,511 | 5,565 | 2,782 | 2,795 | 2,923 | 3,018 | 3,062 | 3,109 | 3,104 | 3,014 | 1,838 | 1,835 | 1,802 | 1,750 | 1,796 | 1,659 | 1,596 | 1,378 | 1,324 | 1,259 | 1,543 | 1,508 | 1,479 | 1,606 | 1,829 |
| Margins | |||||||||||||||||||||||||||||||||||||||||
| Gross margin | 75.6% | 75.6% | 82.2% | 82.2% | 79.7% | 85.7% | 87.0% | 81.6% | 83.3% | 84.8% | 83.1% | 77.9% | 82.5% | 82.5% | 84.7% | 42.1% | 51.3% | 40.5% | 38.0% | 45.2% | 46.3% | 34.6% | 31.3% | 29.1% | 29.7% | 32.2% | 36.4% | 12.5% | (9.1%) | (6.6%) | 13.6% | 18.8% | 24.8% | 22.2% | 29.7% | 18.4% | 16.6% | 22.6% | 24.6% | 16.0% | 23.5% |
| Operating margin | 40.6% | 40.6% | 38.0% | 31.5% | 42.6% | 52.4% | 44.8% | 35.2% | 36.4% | 37.1% | 35.1% | 9.8% | 19.2% | 19.2% | 37.2% | 40.1% | 45.5% | 35.4% | 31.4% | 40.6% | 41.3% | 29.5% | 26.3% | 18.4% | 17.3% | 18.2% | 5.7% | (8.9%) | (21.3%) | (17.8%) | (3.1%) | 5.8% | 11.8% | 9.7% | 6.0% | 5.9% | 0.7% | 9.5% | 10.1% | (8.3%) | 7.9% |
| Net margin | 16.7% | 16.7% | 17.6% | 14.2% | 24.0% | 47.5% | 19.9% | 20.4% | 18.8% | 8.6% | 16.5% | (22.4%) | 4.2% | 4.2% | 23.3% | 21.4% | 33.0% | 24.1% | 11.7% | 25.9% | 28.3% | 32.5% | 23.9% | 14.9% | 10.1% | 7.7% | 8.9% | 7.6% | (12.0%) | (7.0%) | 2.0% | 5.5% | 6.6% | 7.8% | 7.5% | 3.6% | 9.1% | 8.2% | 10.5% | 9.5% | 9.4% |