
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valuation | |||||||||||||||||||||||||||||||||||||||
| Market cap | $109,809 | $114,714 | $104,403 | $152,977 | $138,395 | $137,685 | $142,479 | $84,842 | $100,297 | $97,667 | $114,761 | $97,813 | $87,379 | $54,425 | $59,908 | $45,360 | $49,844 | $45,965 | $52,244 | $51,587 | $44,857 | $49,754 | $55,398 | $46,235 | $98,940 | $138,336 | $121,262 | $126,592 | $89,740 | $52,108 | $41,371 | $28,056 | $28,601 | $32,843 | $43,633 | $33,191 | $28,158 | $22,509 | $21,168 |
| Enterprise value | $146,308 | $155,108 | $133,642 | $184,498 | $167,085 | $173,587 | $174,724 | $83,528 | $101,553 | $98,195 | $117,338 | $98,341 | $91,276 | $59,005 | $56,577 | $43,429 | $47,632 | $44,406 | $56,291 | $55,009 | $47,653 | $52,626 | $58,590 | $49,886 | $99,697 | $136,449 | $120,079 | $126,194 | $90,106 | $51,906 | $40,936 | $27,783 | $26,945 | $31,257 | $42,886 | $33,223 | $28,166 | $20,960 | $19,515 |
| P/E (TTM) at period end | 15.57× | – | 13.01× | 24.18× | 19.79× | – | 41.43× | 17.24× | 99.60× | 21.91× | 73.33× | 48.81× | 34.09× | 27.78× | 16.19× | 14.68× | 4.72× | 8.76× | 24.13× | 32.55× | 14.95× | 20.84× | 17.84× | 21.64× | 20.47× | 29.36× | 29.10× | 40.30× | 28.00× | 18.28× | 22.83× | 15.23× | 14.60× | 16.74× | 21.22× | 18.99× | 37.69× | 17.95× | 19.82× |
| P/S (TTM) at period end | 2.28× | 2.38× | 2.32× | 3.31× | 2.98× | 3.24× | 5.45× | 3.76× | 4.83× | 5.03× | 6.93× | 6.16× | 5.33× | 3.09× | 2.82× | 2.33× | 2.65× | 2.59× | 3.35× | 2.88× | 2.34× | 2.57× | 2.65× | 2.55× | 5.09× | 7.59× | 6.00× | 6.92× | 5.37× | 3.46× | 3.01× | 2.34× | 2.51× | 2.94× | 3.91× | 3.22× | 3.06× | 2.63× | 2.80× |
| P/B at period end | 5.94× | 7.02× | 3.55× | 4.93× | 3.85× | 3.64× | 2.76× | 6.05× | 8.54× | 6.04× | 8.04× | 6.59× | 5.77× | 4.00× | 3.75× | 2.89× | 3.36× | 3.76× | 4.95× | 5.16× | 4.00× | 4.88× | 5.66× | 5.28× | 10.90× | 15.07× | 14.03× | 16.71× | 12.43× | 7.93× | 7.11× | 4.92× | 4.82× | 5.46× | 7.53× | 6.13× | 5.54× | 4.55× | 4.45× |
| EV / EBITDA (TTM) | 8.25× | 10.02× | 7.44× | 9.52× | 8.69× | 13.82× | 22.81× | 14.52× | 23.98× | 20.25× | 55.72× | 45.09× | 24.71× | 12.79× | 7.99× | 6.76× | 8.06× | 7.95× | 13.83× | 16.60× | 10.21× | 9.79× | 10.24× | 10.32× | 16.94× | 20.27× | 20.29× | 24.84× | 17.92× | 11.61× | 10.08× | 7.83× | 9.94× | 13.86× | 14.24× | 12.62× | 22.02× | – | – |
| EV / Sales (TTM) | 3.04× | 3.21× | 2.97× | 4.00× | 3.60× | 4.08× | 6.68× | 3.70× | 4.89× | 5.05× | 7.09× | 6.19× | 5.57× | 3.35× | 2.66× | 2.23× | 2.53× | 2.51× | 3.60× | 3.07× | 2.48× | 2.72× | 2.80× | 2.75× | 5.13× | 7.49× | 5.94× | 6.90× | 5.40× | 3.45× | 2.97× | 2.32× | 2.36× | 2.80× | 3.84× | 3.23× | 3.07× | 2.45× | 2.58× |
| Returns | |||||||||||||||||||||||||||||||||||||||
| Return on equity | 38.2% | (54.8%) | 27.3% | 20.4% | 19.5% | (23.8%) | 6.7% | 35.1% | 8.6% | 27.6% | 11.0% | 13.5% | 16.9% | 14.4% | 23.2% | 19.7% | 71.1% | 42.9% | 20.5% | 15.9% | 26.8% | 23.4% | 31.7% | 24.4% | 53.3% | 51.3% | 48.2% | 41.5% | 44.4% | 43.4% | 31.1% | 32.3% | 33.0% | 32.6% | 35.5% | 32.3% | 14.7% | 25.3% | 22.5% |
| Return on invested capital | 18.7% | 10.3% | 13.1% | 11.9% | 10.9% | 2.9% | 4.7% | 29.1% | 4.6% | 18.1% | 7.3% | 8.5% | 13.1% | 20.3% | 32.1% | 27.6% | 31.9% | 35.3% | 19.1% | 12.0% | 17.8% | 17.4% | 22.9% | 25.1% | 50.0% | 59.7% | 50.0% | 46.9% | 41.8% | 44.1% | 50.6% | 42.8% | 42.7% | 34.2% | 39.0% | 30.4% | 12.4% | 34.6% | 31.0% |
| Dividend yield | 4.6% | 4.2% | 4.5% | 3.0% | 3.2% | 3.0% | 1.9% | 3.1% | 2.6% | 2.6% | 2.2% | 2.5% | 2.6% | 4.2% | 3.8% | 4.9% | 5.0% | 5.4% | 4.2% | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||
| Current ratio | 1.26× | 1.25× | 1.43× | 1.25× | 1.52× | 1.58× | 1.60× | 1.66× | 1.55× | 1.55× | 1.30× | 1.73× | 1.52× | 1.15× | 1.97× | 1.97× | 2.21× | 2.19× | 1.20× | 1.59× | 1.78× | 1.50× | 1.61× | 1.19× | 1.19× | 1.74× | 1.67× | 1.52× | 1.54× | 1.49× | 1.46× | 1.57× | 2.14× | 2.01× | 2.02× | 2.01× | 2.09× | 2.08× | 2.35× |
| Debt / equity | 2.44× | 3.04× | 1.35× | 1.27× | 1.24× | 1.34× | 0.91× | 0.52× | 0.68× | 0.41× | 0.47× | 0.53× | 0.55× | 0.54× | 0.34× | 0.35× | 0.43× | 0.55× | 0.59× | 0.74× | 0.77× | 1.01× | 0.89× | 0.87× | 0.71× | 0.16× | 0.21× | 0.24× | 0.25× | 0.23× | 0.21× | 0.24× | 0.13× | 0.09× | 0.12× | 0.12× | 0.10× | 0.19× | 0.15× |
| Effective tax rate | 24.4% | (6.6%) | 4.7% | 17.7% | 13.4% | (30.9%) | 30.5% | 17.1% | 81.0% | 23.8% | 21.5% | 14.8% | 10.8% | (6.9%) | 24.7% | 25.7% | 21.1% | 22.8% | 18.7% | 22.4% | 20.2% | 34.4% | 25.9% | 14.2% | 3.3% | 25.2% | 26.5% | 24.4% | 28.5% | 29.0% | 24.6% | 27.9% | 23.8% | 22.6% | 28.8% | 30.7% | 41.5% | 33.6% | 34.4% |
| Share count | |||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 2,039 | 2,027 | 2,078 | 2,146 | 2,245 | 2,258 | 1,712 | 1,637 | 1,652 | 1,680 | 1,679 | 1,670 | 1,662 | 1,688 | 1,717 | 1,727 | 1,978 | 2,001 | 1,980 | 1,963 | 1,983 | 1,976 | 1,950 | 2,016 | 1,965 | 1,997 | 2,027 | 2,031 | 2,042 | 2,036 | 2,032 | 2,036 | 2,062 | 2,044 | 2,077 | 2,081 | 2,075 | 2,090 | 2,136 |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and gross profit | ||||||||||||||||||||||||||||||||||||||||
| Revenue | $49,186 | $48,194 | $48,300 | $45,006 | $46,159 | $46,385 | $42,518 | $26,145 | $22,561 | $20,776 | $19,427 | $16,560 | $15,879 | $16,385 | $17,621 | $21,244 | $19,484 | $18,808 | $17,715 | $15,617 | $17,914 | $19,207 | $19,380 | $20,894 | $18,119 | $19,423 | $18,216 | $20,222 | $18,284 | $16,701 | $15,065 | $13,767 | $11,984 | $11,413 | $11,156 | $11,159 | $10,300 | $9,189 | $8,558 | $7,558 |
| Cost of revenue | ($14,679) | ($13,936) | ($13,968) | ($10,693) | ($10,137) | ($9,940) | ($11,773) | ($8,078) | ($6,467) | ($6,066) | ($4,946) | ($3,909) | ($3,932) | ($4,619) | ($4,610) | ($5,598) | ($5,277) | ($5,140) | ($5,316) | ($4,919) | – | – | ($5,989) | – | ($6,532) | – | ($4,759) | – | – | ($3,873) | ($3,446) | ($3,189) | ($2,794) | ($2,721) | ($2,562) | ($2,684) | ($2,630) | ($2,460) | ($2,299) | ($2,141) |
| Gross profit | $34,507 | $34,258 | $34,332 | $34,313 | $36,022 | $36,445 | $30,745 | $18,067 | $16,094 | $14,682 | $14,481 | $12,651 | $11,947 | $11,766 | $13,011 | $15,646 | $14,207 | $13,668 | $12,399 | $10,698 | – | – | $13,391 | – | $11,574 | – | $13,457 | – | – | $12,828 | $11,619 | $10,578 | $9,190 | $8,692 | $8,594 | $8,475 | $7,670 | $6,729 | $6,259 | $5,417 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||
| Research and development | ($10,722) | ($9,951) | ($11,159) | ($9,299) | ($9,509) | ($10,195) | ($10,048) | ($6,148) | ($6,332) | ($6,468) | ($5,012) | ($5,920) | ($4,534) | ($3,731) | ($3,904) | ($3,839) | ($3,566) | ($3,647) | ($3,512) | ($3,160) | ($2,991) | ($2,678) | ($2,500) | ($2,279) | ($2,206) | ($2,183) | ($1,939) | ($1,759) | ($1,506) | ($1,385) | ($1,276) | ($1,199) | ($1,108) | – | – | – | – | – | – | – |
| Selling, general and administrative | ($7,413) | ($7,267) | ($8,414) | ($7,772) | ($7,814) | ($7,690) | ($7,661) | ($4,871) | ($4,551) | ($4,751) | ($4,979) | ($4,841) | ($4,822) | ($4,939) | ($4,220) | ($4,203) | ($3,686) | ($3,946) | ($4,140) | ($3,941) | ($6,140) | ($6,453) | ($6,427) | ($6,035) | ($5,267) | ($5,193) | ($5,532) | ($5,338) | ($5,203) | ($6,414) | ($5,871) | ($5,316) | ($4,533) | ($5,981) | ($6,339) | ($5,463) | ($5,037) | ($5,450) | ($4,304) | ($3,789) |
| Total operating expenses | ($20,665) | ($20,534) | ($28,445) | ($26,118) | ($26,918) | ($27,908) | ($28,568) | ($12,154) | ($10,980) | ($11,236) | ($10,014) | ($10,921) | ($10,233) | ($8,835) | ($9,079) | ($9,009) | ($8,257) | ($8,229) | ($7,376) | ($7,170) | – | – | ($8,927) | – | ($7,473) | – | ($7,471) | – | – | ($8,390) | ($7,666) | ($6,963) | ($5,969) | ($6,289) | ($6,634) | ($5,709) | ($5,281) | ($5,646) | ($4,489) | ($3,950) |
| Total costs and expenses | ($35,344) | ($34,470) | ($42,413) | ($36,811) | ($37,055) | ($37,848) | ($40,341) | ($20,232) | ($17,447) | ($17,330) | ($14,960) | ($14,830) | ($14,165) | ($13,454) | ($13,689) | ($14,607) | ($13,534) | ($13,369) | ($12,692) | ($12,089) | ($15,528) | ($15,470) | ($14,916) | ($15,961) | ($14,018) | ($14,265) | ($12,230) | ($14,983) | ($13,828) | ($12,263) | ($11,112) | ($10,152) | ($8,763) | ($9,010) | ($9,196) | ($8,393) | ($7,911) | ($8,106) | ($6,788) | ($6,091) |
| Operating income | $13,842 | $13,724 | $5,887 | $8,195 | $9,104 | $8,537 | $2,177 | $5,913 | $5,114 | $3,446 | $4,467 | $1,730 | $1,714 | $2,931 | $3,932 | $6,637 | $5,950 | $5,439 | $5,023 | $3,528 | $2,386 | $3,737 | $4,464 | $4,933 | $4,101 | $5,158 | $5,986 | $5,239 | $4,456 | $4,438 | $3,953 | $3,615 | $3,221 | $2,403 | $1,960 | $2,766 | $2,389 | $1,083 | $1,770 | $1,467 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||
| EBITDA | $17,018 | $17,735 | $15,487 | $17,955 | $19,380 | $19,223 | $12,557 | $7,659 | $5,751 | $4,235 | $4,849 | $2,106 | $2,181 | $3,694 | $4,613 | $7,085 | $6,423 | $5,908 | $5,585 | $4,070 | $3,313 | $4,666 | $5,373 | $5,722 | $4,836 | $5,886 | $6,732 | $5,917 | $5,081 | $5,029 | $4,472 | $4,063 | $3,549 | $2,711 | $2,255 | $3,012 | $2,633 | $1,279 | – | – |
| Interest income | $514 | $586 | $478 | $449 | $171 | $39 | $121 | $464 | $173 | $126 | $97 | $101 | $101 | $104 | $106 | $91 | $75 | $54 | $130 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,730) | ($1,891) | ($1,947) | ($1,166) | ($1,232) | ($1,334) | ($1,420) | ($656) | ($183) | ($196) | ($167) | ($184) | ($203) | ($199) | ($182) | ($145) | ($145) | ($184) | ($310) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $11,910 | $9,328 | ($8,379) | $8,440 | $7,713 | $8,098 | ($6,871) | $4,975 | $5,968 | $5,131 | $5,915 | $2,077 | $2,381 | $2,891 | $2,340 | $6,981 | $6,071 | $5,602 | $4,776 | $2,523 | $2,400 | $4,304 | $4,418 | $4,680 | $2,761 | $2,218 | $5,478 | $5,158 | $3,638 | $4,482 | $4,013 | $2,402 | $2,555 | $2,571 | $1,987 | $2,887 | $2,524 | $1,277 | $1,889 | $1,628 |
| Income tax expense | ($2,634) | ($2,272) | ($554) | ($400) | ($1,368) | ($1,084) | ($2,124) | ($1,515) | ($1,021) | ($4,156) | ($1,408) | ($446) | ($352) | ($311) | $161 | ($1,721) | ($1,558) | ($1,182) | ($1,090) | ($471) | ($538) | ($870) | ($1,519) | ($1,210) | ($391) | ($73) | ($1,382) | ($1,369) | ($888) | ($1,277) | ($1,163) | ($590) | ($713) | ($612) | ($449) | ($831) | ($776) | ($530) | ($635) | ($560) |
| Net income | $9,282 | $7,054 | ($8,948) | $8,025 | $6,327 | $6,994 | ($9,015) | $3,439 | $4,920 | $1,007 | $4,457 | $1,565 | $2,004 | $2,563 | $1,960 | $3,709 | $3,102 | $10,612 | $5,247 | $2,165 | $1,585 | $3,000 | $2,388 | $3,106 | $2,137 | $4,834 | $4,711 | $4,167 | $3,141 | $3,205 | $2,850 | $1,812 | $1,842 | $1,959 | $1,962 | $2,056 | $1,748 | $747 | $1,254 | $1,068 |
| Per share | ||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $4.54 | $3.46 | ($4.41) | $3.86 | $2.95 | $3.12 | ($3.99) | $2.01 | $3.01 | $0.61 | $2.65 | $0.93 | $1.20 | $1.54 | $1.16 | $2.16 | $1.79 | $5.34 | $2.62 | $1.09 | $0.81 | $1.51 | $1.21 | $1.59 | $1.02 | $2.67 | $2.36 | $2.06 | $1.55 | $1.57 | $1.40 | $0.89 | $0.90 | $0.95 | $0.96 | $0.99 | $0.84 | $0.36 | $0.60 | $0.50 |
| Basic EPS (GAAP) | $4.54 | $3.47 | ($4.41) | $3.88 | $2.97 | $3.15 | ($3.99) | $2.02 | $3.01 | $0.61 | $2.67 | $0.94 | $1.21 | $1.56 | $1.17 | $2.18 | $1.80 | $5.35 | $2.64 | $1.09 | $0.81 | $1.54 | $1.23 | $1.60 | $1.03 | $2.70 | $2.40 | $2.10 | $1.58 | $1.61 | $1.42 | $0.90 | $0.90 | $0.95 | $0.96 | $0.99 | $0.84 | $0.36 | $0.60 | $0.50 |
| Basic shares outstanding | 2,039 | 2,034 | 2,027 | 2,069 | 2,130 | 2,221 | 2,258 | 1,705 | 1,633 | 1,645 | 1,671 | 1,667 | 1,657 | 1,644 | 1,670 | 1,700 | 1,713 | 1,974 | 1,977 | 1,970 | 1,960 | 1,952 | 1,942 | 1,937 | 1,997 | 1,940 | 1,965 | 1,984 | 1,987 | 1,992 | 2,008 | 2,024 | 2,036 | 2,062 | 2,044 | 2,077 | 2,081 | 2,075 | 2,090 | 2,136 |
| Margins | ||||||||||||||||||||||||||||||||||||||||
| Gross margin | 70.2% | 71.1% | 71.1% | 76.2% | 78.0% | 78.6% | 72.3% | 69.1% | 71.3% | 70.7% | 74.5% | 76.4% | 75.2% | 71.8% | 73.8% | 73.6% | 72.9% | 72.7% | 70.0% | 68.5% | – | – | 69.1% | – | 63.9% | – | 73.9% | – | – | 76.8% | 77.1% | 76.8% | 76.7% | 76.2% | 77.0% | 75.9% | 74.5% | 73.2% | 73.1% | 71.7% |
| Operating margin | 28.1% | 28.5% | 12.2% | 18.2% | 19.7% | 18.4% | 5.1% | 22.6% | 22.7% | 16.6% | 23.0% | 10.4% | 10.8% | 17.9% | 22.3% | 31.2% | 30.5% | 28.9% | 28.4% | 22.6% | 13.3% | 19.5% | 23.0% | 23.6% | 22.6% | 26.6% | 32.9% | 25.9% | 24.4% | 26.6% | 26.2% | 26.3% | 26.9% | 21.1% | 17.6% | 24.8% | 23.2% | 11.8% | 20.7% | 19.4% |
| Net margin | 18.9% | 14.6% | (18.5%) | 17.8% | 13.7% | 15.1% | (21.2%) | 13.2% | 21.8% | 4.8% | 22.9% | 9.5% | 12.6% | 15.6% | 11.1% | 17.5% | 15.9% | 56.4% | 29.6% | 13.9% | 8.8% | 15.6% | 12.3% | 14.9% | 11.8% | 24.9% | 25.9% | 20.6% | 17.2% | 19.2% | 18.9% | 13.2% | 15.4% | 17.2% | 17.6% | 18.4% | 17.0% | 8.1% | 14.7% | 14.1% |