
| 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 | $217,863 | $196,184 | $191,088 | $191,427 | $248,869 | $193,610 | $153,593 | $127,900 | $100,916 | $67,920 | $79,414 | $67,892 | $59,339 | $49,413 | – | – | – | – | – | – | – | – | – | $28,066 | $38,868 | $33,716 | $25,095 | $33,865 | $22,839 | $17,747 | $14,889 | $11,907 | $11,042 | $11,437 | $13,168 | $8,727 | $6,826 | $4,834 | $4,898 | $4,771 | $3,574 |
| Enterprise value | $224,632 | $203,729 | $199,906 | $199,422 | $258,093 | $206,571 | $168,765 | $143,578 | $119,431 | $71,330 | $82,405 | $71,375 | $57,898 | $54,807 | – | – | – | – | – | – | – | – | – | $33,522 | $45,444 | $34,115 | $26,605 | $36,581 | $25,299 | $19,940 | $16,059 | $12,652 | $11,814 | $12,346 | $13,777 | $9,491 | $7,259 | $5,094 | $5,256 | $5,179 | $3,702 |
| P/E (TTM) at period end | 33.52× | 14.64× | 33.52× | 27.72× | 35.34× | 43.28× | 41.90× | 54.36× | 215.63× | 48.76× | 18.04× | 29.87× | 23.20× | 8.35× | – | – | – | – | – | – | – | – | – | 10.05× | 25.07× | 12.10× | 10.26× | 14.51× | 10.99× | 9.43× | 8.82× | 7.85× | 7.89× | 9.23× | 12.09× | 9.04× | 7.94× | 6.43× | 7.74× | 8.83× | 7.68× |
| P/S (TTM) at period end | 4.91× | 4.68× | 4.76× | 4.39× | 5.78× | 5.59× | 4.81× | 4.18× | 3.68× | 3.26× | 3.89× | 3.35× | 3.02× | 2.59× | – | – | – | – | – | – | – | – | – | 1.59× | 2.39× | 2.45× | 1.90× | 2.71× | 1.92× | 1.61× | 1.49× | 1.30× | 1.31× | 1.46× | 1.91× | 1.42× | 1.27× | 0.98× | 1.12× | 1.25× | 1.06× |
| P/B at period end | 4.18× | 4.12× | 4.95× | 5.22× | 6.95× | 5.91× | 4.94× | 4.19× | 3.27× | 3.31× | 3.74× | 3.15× | 2.36× | 1.85× | – | – | – | – | – | – | – | – | – | 2.63× | 4.29× | 3.93× | 3.38× | 5.93× | 4.57× | 3.68× | 3.39× | 2.94× | 3.00× | 3.42× | 4.11× | 3.08× | 2.50× | 1.96× | 2.34× | 2.68× | 1.91× |
| EV / EBITDA (TTM) | 23.68× | 24.95× | 25.78× | 20.74× | 26.03× | 31.53× | 30.08× | 30.23× | 45.76× | 18.63× | 22.05× | 20.29× | 18.91× | 20.13× | – | – | – | – | – | – | – | – | – | 7.99× | 14.84× | 8.07× | 6.69× | 9.37× | 7.07× | 6.04× | 5.44× | 4.77× | 4.91× | 6.32× | 7.12× | 5.39× | 4.75× | – | – | – | – |
| EV / Sales (TTM) | 5.07× | 4.86× | 4.98× | 4.57× | 5.99× | 5.97× | 5.29× | 4.70× | 4.36× | 3.42× | 4.04× | 3.53× | 2.95× | 2.88× | – | – | – | – | – | – | – | – | – | 1.90× | 2.79× | 2.48× | 2.02× | 2.93× | 2.13× | 1.81× | 1.60× | 1.38× | 1.41× | 1.57× | 2.00× | 1.54× | 1.35× | 1.03× | 1.20× | 1.36× | 1.10× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | 12.5% | 28.1% | 14.8% | 18.8% | 19.7% | 13.6% | 11.8% | 7.7% | 1.5% | 6.8% | 20.8% | 10.6% | 10.2% | 22.1% | 19.3% | 20.4% | 24.8% | 27.9% | 20.3% | 12.2% | 23.4% | 22.6% | 21.1% | 26.2% | 17.1% | 32.5% | 32.9% | 40.9% | 41.6% | 39.0% | 38.4% | 37.5% | 38.1% | 37.0% | 34.0% | 34.1% | 31.5% | 30.5% | 30.2% | 30.4% | 24.9% |
| Return on invested capital | 10.5% | 12.3% | 11.6% | 15.5% | 16.0% | 10.5% | 8.8% | 6.4% | 0.5% | 9.4% | 9.3% | 7.0% | 7.3% | – | 4.5% | 13.0% | 16.2% | 18.5% | 13.4% | 12.6% | 18.7% | 16.9% | 12.1% | 14.6% | 9.9% | 26.9% | 25.0% | 26.4% | 27.0% | 26.3% | 30.0% | 31.1% | 30.6% | 25.5% | 28.8% | 27.9% | 27.8% | 28.8% | 27.7% | 26.5% | 24.7% |
| Dividend yield | 1.9% | 2.0% | 1.9% | 1.7% | 1.3% | 1.3% | 1.5% | 1.5% | 1.8% | 2.3% | 1.8% | 2.0% | 1.5% | 6.4% | – | – | – | – | – | – | – | – | – | 5.1% | 3.3% | 3.4% | 4.0% | 2.6% | 3.5% | 4.1% | 4.4% | 5.1% | 5.0% | 4.3% | 3.1% | 4.0% | 4.4% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 1.58× | 1.67× | 1.64× | 1.63× | 1.85× | 1.72× | 1.44× | 1.62× | 2.26× | 4.02× | 1.54× | 1.30× | 2.02× | 2.36× | 1.54× | 1.29× | 1.79× | 1.47× | 1.54× | 0.94× | 1.54× | 1.57× | 1.35× | 1.30× | 1.06× | 1.72× | 1.42× | 1.12× | 1.00× | 1.03× | 1.12× | 1.12× | 1.16× | 1.16× | 1.30× | 1.23× | 1.52× | 1.63× | 1.45× | 1.45× | 2.13× |
| Debt / equity | 0.25× | 0.30× | 0.38× | 0.46× | 0.50× | 0.57× | 0.58× | 0.63× | 0.90× | 1.01× | 0.28× | 0.16× | 0.13× | 0.69× | 0.53× | 0.64× | 0.50× | 0.56× | 0.58× | 0.88× | 0.46× | 0.47× | 0.46× | 0.60× | 0.80× | 0.18× | 0.30× | 0.54× | 0.54× | 0.48× | 0.34× | 0.26× | 0.31× | 0.31× | 0.21× | 0.28× | 0.16× | 0.34× | 0.42× | 0.50× | 0.30× |
| Effective tax rate | 22.9% | (91.1%) | 14.1% | 16.5% | 13.9% | 10.0% | 9.6% | 18.8% | 84.2% | 24.8% | 18.1% | 31.7% | 2.6% | 207.7% | 8.9% | 19.0% | 20.1% | 19.2% | 19.3% | 24.6% | 27.0% | 23.0% | 26.3% | 23.9% | 17.7% | 27.0% | 28.0% | 28.0% | 29.0% | 29.5% | 29.5% | 30.0% | 28.0% | 28.7% | 29.5% | 28.5% | 28.0% | 28.7% | 32.5% | 34.0% | 33.0% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 1,748 | 1,748 | 1,749 | 1,764 | 1,789 | 1,786 | 1,781 | 1,770 | 1,749 | 1,483 | 1,506 | 1,527 | 1,574 | 1,592 | 1,567 | 1,556 | 1,555 | 1,561 | 1,560 | 1,537 | 1,564 | 1,571 | 1,572 | 1,573 | 1,566 | 1,566 | 1,558 | 1,561 | 1,575 | 1,582 | 1,595 | 1,624 | 1,658 | 1,674 | 1,701 | 1,725 | 1,755 | 1,790 | 1,807 | 1,864 | 1,861 |
| 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 | $48,229 | $44,328 | $41,950 | $40,109 | $43,653 | $43,075 | $34,608 | $31,904 | $30,578 | $27,390 | $20,853 | $20,405 | $20,247 | $19,657 | $19,050 | $21,407 | $35,167 | $30,765 | $29,528 | $25,914 | $22,476 | $22,338 | $19,680 | $19,681 | $17,685 | $16,285 | $13,746 | $13,178 | $12,478 | $11,883 | $11,013 | $10,012 | $9,156 | $8,408 | $7,852 | $6,877 | $6,159 | $5,380 | $4,937 | $4,388 | $3,808 | $3,360 |
| Cost of revenue | ($20,726) | ($19,319) | ($18,706) | ($17,975) | ($19,142) | ($18,537) | ($15,003) | ($13,231) | ($12,706) | ($12,337) | ($9,024) | ($8,747) | ($9,218) | ($9,193) | ($8,899) | ($10,017) | ($14,665) | ($13,209) | ($12,612) | ($11,422) | ($9,634) | ($10,467) | ($8,884) | ($9,473) | ($8,506) | ($7,748) | ($6,239) | ($5,977) | ($5,394) | ($5,046) | ($4,732) | ($4,326) | ($3,994) | ($3,685) | ($3,078) | ($2,761) | ($2,554) | ($2,249) | ($2,082) | ($1,858) | ($1,669) | ($1,539) |
| Gross profit | $27,503 | $25,009 | $23,244 | $22,134 | $24,511 | $24,538 | $19,605 | $18,673 | $17,872 | $15,053 | $11,829 | $11,658 | $11,029 | $10,464 | $10,151 | $11,390 | $20,502 | $17,555 | $16,916 | $14,492 | $12,842 | $11,871 | $10,796 | $10,207 | $9,178 | $8,537 | $7,507 | $7,200 | $7,083 | $6,838 | $6,281 | $5,686 | $5,162 | $4,723 | $4,774 | $4,116 | $3,604 | $3,130 | $2,855 | $2,530 | $2,139 | $1,821 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | ($3,302) | ($2,942) | ($2,844) | ($2,741) | ($2,888) | ($2,742) | ($2,420) | ($2,440) | ($2,300) | ($2,260) | ($1,447) | ($1,405) | ($1,345) | ($1,371) | ($1,461) | ($1,512) | ($3,724) | ($2,744) | ($2,689) | ($2,506) | ($2,226) | ($1,811) | ($1,697) | ($1,733) | ($1,562) | ($1,578) | ($1,351) | ($1,194) | ($1,222) | ($1,302) | ($1,205) | ($1,073) | ($964) | ($881) | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($15,093) | ($12,332) | ($11,697) | ($10,949) | ($11,248) | ($11,324) | ($9,696) | ($9,765) | ($9,744) | ($9,182) | ($6,736) | ($6,785) | ($6,530) | ($6,372) | ($6,735) | ($7,365) | ($10,376) | ($8,406) | ($8,436) | ($7,408) | ($6,280) | ($5,410) | ($4,922) | ($5,051) | ($3,979) | ($3,735) | ($2,894) | ($2,857) | ($2,744) | ($2,685) | ($2,460) | ($2,231) | ($2,054) | ($1,988) | ($2,821) | ($2,180) | ($1,842) | ($1,602) | ($1,482) | ($1,280) | ($1,061) | ($928) |
| Total operating expenses | ($20,738) | ($16,956) | ($16,419) | ($15,656) | ($16,149) | ($16,113) | ($14,248) | ($14,141) | ($14,222) | ($13,489) | ($8,803) | ($8,791) | ($8,430) | ($8,331) | ($8,791) | ($9,761) | ($14,414) | ($11,320) | ($11,222) | ($9,914) | ($8,506) | ($7,221) | ($6,619) | ($7,233) | ($6,026) | ($6,643) | ($4,107) | ($4,051) | ($3,965) | ($3,987) | ($3,664) | ($3,303) | ($3,018) | ($2,799) | ($3,248) | ($2,559) | ($2,198) | ($1,909) | ($1,753) | ($1,524) | ($1,260) | ($1,084) |
| Total costs and expenses | ($41,464) | ($36,275) | ($35,125) | ($33,631) | ($35,291) | ($34,650) | ($29,251) | ($27,372) | ($26,928) | ($25,826) | ($17,827) | ($17,538) | ($17,648) | ($17,524) | ($17,690) | ($19,778) | ($29,079) | ($24,529) | ($23,834) | ($21,336) | ($18,140) | ($17,688) | ($15,503) | ($16,707) | ($14,533) | ($14,391) | ($10,345) | ($10,028) | ($9,360) | ($9,033) | ($8,396) | ($7,629) | ($7,012) | ($6,484) | ($6,326) | ($5,320) | ($4,753) | ($4,159) | ($3,835) | ($3,382) | ($2,929) | ($2,623) |
| Operating income | $6,765 | $8,053 | $6,825 | $6,478 | $8,362 | $8,425 | $5,357 | $4,532 | $3,650 | $1,564 | $3,026 | $2,867 | $2,599 | $2,133 | $1,360 | $1,629 | $6,088 | $6,236 | $5,694 | $4,579 | $4,336 | $4,649 | $4,177 | $2,974 | $3,152 | $1,894 | $3,401 | $3,149 | $3,118 | $2,850 | $2,617 | $2,383 | $2,144 | $1,924 | $1,526 | $1,557 | $1,406 | $1,221 | $1,102 | $1,006 | $879 | $737 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | – | $9,487 | $8,165 | $7,755 | $9,616 | $9,916 | $6,552 | $5,610 | $4,750 | $2,610 | $3,829 | $3,738 | $3,517 | $3,061 | $2,723 | $3,024 | $7,295 | $7,447 | $6,746 | $5,651 | $5,895 | $6,008 | $5,466 | $4,101 | $4,196 | $3,062 | $4,228 | $3,977 | $3,902 | $3,578 | $3,303 | $2,949 | $2,655 | $2,408 | $1,954 | $1,936 | $1,762 | $1,528 | – | – | – | – |
| Interest income | – | $308 | $344 | $385 | $183 | $43 | $46 | $94 | $105 | $124 | $99 | $105 | $77 | $67 | $59 | $65 | $105 | $138 | $201 | $137 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($942) | ($493) | ($559) | ($637) | ($558) | ($533) | ($546) | ($670) | ($826) | ($904) | ($431) | ($163) | ($150) | ($145) | ($320) | ($359) | ($553) | ($520) | ($528) | ($593) | ($416) | ($241) | ($200) | ($146) | ($205) | ($234,759) | ($23) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $6,562 | $8,466 | $7,013 | $6,664 | $8,306 | $8,211 | $4,968 | $4,077 | $2,873 | $2,231 | $1,413 | $3,183 | $2,518 | $2,041 | ($220) | $1,236 | $5,713 | $7,194 | $5,856 | $4,470 | $2,276 | $4,620 | $4,126 | $3,734 | $3,673 | $1,883 | $3,816 | $3,397 | $3,241 | $2,950 | $2,670 | $2,395 | $2,167 | $1,943 | $1,739 | $1,544 | $1,351 | $1,194 | $1,055 | $937 | $819 | $694 |
| Income tax expense | ($1,861) | ($1,942) | $6,389 | ($941) | ($1,373) | ($1,140) | ($497) | ($390) | ($539) | ($1,878) | ($350) | ($577) | ($797) | ($53) | $457 | ($110) | ($1,087) | ($1,448) | ($1,122) | ($863) | ($560) | ($1,248) | ($950) | ($981) | ($880) | ($333) | ($1,030) | ($951) | ($907) | ($855) | ($788) | ($707) | ($650) | ($544) | ($500) | ($456) | ($385) | ($334) | ($303) | ($305) | ($278) | ($229) |
| Net income | $4,701 | $6,524 | $13,402 | $5,723 | $6,933 | $7,071 | $4,495 | $3,687 | $2,368 | $477 | $1,400 | $4,423 | $2,284 | $2,576 | $5,917 | $4,714 | $4,626 | $5,746 | $4,881 | $3,606 | $1,717 | $3,372 | $3,236 | $2,753 | $2,794 | $1,550 | $2,786 | $2,446 | $2,334 | $2,079 | $1,882 | $1,689 | $1,517 | $1,399 | $1,239 | $1,089 | $966 | $860 | $752 | $633 | $540 | $465 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $2.69 | $3.72 | $7.64 | $3.26 | $3.91 | $3.94 | $2.50 | $2.06 | $1.33 | $0.27 | $0.94 | $2.92 | $1.49 | $1.62 | $3.72 | $3.01 | $2.96 | $3.69 | $3.12 | $2.31 | $1.12 | $2.16 | $2.06 | $1.75 | $1.78 | $0.99 | $1.78 | $1.57 | $1.49 | $1.33 | $1.19 | $1.06 | $0.93 | $0.84 | $0.74 | $0.64 | $0.56 | $0.49 | $0.42 | $0.35 | $0.29 | $0.25 |
| Basic EPS (GAAP) | $2.70 | $3.73 | $7.67 | $3.28 | $3.94 | $3.97 | $2.52 | $2.07 | $1.34 | $0.27 | $0.94 | $2.94 | $1.50 | $1.64 | $3.76 | $3.03 | $2.98 | $3.71 | $3.16 | $2.34 | $1.12 | $2.17 | $2.07 | $1.76 | $1.79 | $1.00 | $1.80 | $1.59 | $1.52 | $1.35 | $1.21 | $1.06 | $0.93 | $0.84 | $0.74 | $0.64 | $0.56 | $0.49 | $0.42 | $0.35 | $0.29 | $0.25 |
| Basic shares outstanding | 1,742 | 1,741 | 1,740 | 1,740 | 1,753 | 1,775 | 1,773 | 1,768 | 1,758 | 1,740 | 1,477 | 1,496 | 1,516 | 1,558 | 1,575 | 1,557 | 1,546 | 1,547 | 1,545 | 1,543 | 1,530 | 1,552 | 1,561 | 1,563 | 1,561 | 1,550 | 1,548 | 1,537 | 1,537 | 1,552 | 1,555 | 1,591 | 1,624 | 1,658 | 1,674 | 1,701 | 1,725 | 1,755 | 1,790 | 1,807 | 1,864 | 1,861 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 57.0% | 56.4% | 55.4% | 55.2% | 56.1% | 57.0% | 56.6% | 58.5% | 58.4% | 55.0% | 56.7% | 57.1% | 54.5% | 53.2% | 53.3% | 53.2% | 58.3% | 57.1% | 57.3% | 55.9% | 57.1% | 53.1% | 54.9% | 51.9% | 51.9% | 52.4% | 54.6% | 54.6% | 56.8% | 57.5% | 57.0% | 56.8% | 56.4% | 56.2% | 60.8% | 59.8% | 58.5% | 58.2% | 57.8% | 57.7% | 56.2% | 54.2% |
| Operating margin | 14.0% | 18.2% | 16.3% | 16.2% | 19.2% | 19.6% | 15.5% | 14.2% | 11.9% | 5.7% | 14.5% | 14.1% | 12.8% | 10.9% | 7.1% | 7.6% | 17.3% | 20.3% | 19.3% | 17.7% | 19.3% | 20.8% | 21.2% | 15.1% | 17.8% | 11.6% | 24.7% | 23.9% | 25.0% | 24.0% | 23.8% | 23.8% | 23.4% | 22.9% | 19.4% | 22.6% | 22.8% | 22.7% | 22.3% | 22.9% | 23.1% | 21.9% |
| Net margin | 9.7% | 14.7% | 31.9% | 14.3% | 15.9% | 16.4% | 13.0% | 11.6% | 7.7% | 1.7% | 6.7% | 21.7% | 11.3% | 13.1% | 31.1% | 22.0% | 13.2% | 18.7% | 16.5% | 13.9% | 7.6% | 15.1% | 16.4% | 14.0% | 15.8% | 9.5% | 20.3% | 18.6% | 18.7% | 17.5% | 17.1% | 16.9% | 16.6% | 16.6% | 15.8% | 15.8% | 15.7% | 16.0% | 15.2% | 14.4% | 14.2% | 13.8% |