
| 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 | $300,725 | $268,203 | $254,779 | $275,082 | $255,753 | $236,877 | $239,080 | $204,525 | $198,175 | $179,083 | $185,562 | $185,219 | $183,169 | $163,270 | $158,365 | $151,820 | $131,898 | $104,868 | $141,972 | $113,314 | $96,445 | $101,019 | $124,819 | $108,636 | $117,237 | $150,948 | $143,844 | $165,289 | $165,166 | $131,234 | $93,728 | $66,461 | $57,819 | $55,321 | $53,192 | $31,071 | $20,952 | $16,094 | $14,067 | $14,225 | $10,594 |
| Enterprise value | $334,239 | $300,883 | $286,081 | $305,775 | $289,531 | $274,456 | $275,644 | $236,726 | $236,346 | $212,344 | $218,310 | $214,582 | $206,954 | $184,724 | $174,272 | $166,896 | $137,221 | $109,591 | $146,993 | $115,306 | $97,378 | $101,429 | $126,760 | $111,647 | $120,421 | $154,707 | $148,259 | $168,631 | $167,304 | $134,314 | $96,625 | $68,584 | $59,921 | $57,573 | $54,421 | $32,178 | $21,837 | $16,987 | $15,301 | $15,074 | $11,044 |
| P/E (TTM) at period end | 22.94× | 25.23× | 23.78× | 28.83× | 26.17× | 30.58× | 26.80× | 31.79× | 158.79× | 27.44× | 25.24× | 26.09× | 21.34× | 18.10× | 18.45× | 12.88× | 19.33× | 18.06× | 23.74× | 22.31× | 19.80× | 20.84× | 28.71× | 35.62× | 29.54× | 69.34× | 59.17× | 46.78× | 40.00× | 37.58× | 31.39× | 26.02× | 26.57× | 33.24× | 32.88× | 22.48× | 17.25× | 15.41× | 15.35× | 15.23× | 14.67× |
| P/S (TTM) at period end | 6.27× | 5.70× | 5.57× | 6.40× | 6.62× | 7.18× | 6.42× | 5.96× | 5.47× | 4.28× | 4.19× | 4.03× | 3.91× | 3.40× | 3.40× | 4.32× | 4.26× | 3.28× | 4.92× | 4.70× | 4.17× | 4.65× | 5.93× | 5.55× | 6.68× | 7.59× | 7.46× | 8.79× | 8.75× | 7.03× | 5.17× | 4.11× | 4.14× | 4.23× | 4.60× | 3.04× | 2.34× | 1.93× | 1.84× | 1.64× | 1.34× |
| P/B at period end | 9.35× | 10.79× | 9.82× | 11.41× | 11.12× | 12.27× | 12.60× | 12.04× | 11.61× | 7.77× | 7.26× | 6.11× | 5.52× | 4.98× | 5.01× | 4.90× | 5.32× | 5.12× | 6.53× | 6.70× | 5.90× | 6.34× | 8.86× | 9.21× | 10.31× | 16.20× | 15.12× | 19.67× | 22.59× | 21.32× | 17.38× | 12.70× | 12.61× | 14.23× | 12.02× | 8.07× | 6.01× | 5.28× | 4.36× | 4.05× | 3.56× |
| EV / EBITDA (TTM) | 22.57× | 27.19× | 23.00× | 25.13× | 24.62× | 26.06× | 24.07× | 23.12× | 26.22× | 20.33× | 20.41× | 18.37× | 16.96× | 14.48× | 14.37× | 16.93× | 14.49× | 11.33× | 17.47× | 15.91× | 13.88× | 15.39× | 20.88× | 17.82× | 19.56× | 34.66× | 31.06× | 30.05× | 29.73× | 30.57× | 21.57× | 16.65× | 17.31× | 18.62× | 21.09× | 14.66× | 11.44× | – | – | – | – |
| EV / Sales (TTM) | 6.97× | 6.39× | 6.25× | 7.11× | 7.49× | 8.31× | 7.40× | 6.90× | 6.53× | 5.07× | 4.93× | 4.67× | 4.42× | 3.85× | 3.74× | 4.75× | 4.43× | 3.43× | 5.09× | 4.79× | 4.21× | 4.67× | 6.02× | 5.71× | 6.86× | 7.78× | 7.69× | 8.96× | 8.87× | 7.19× | 5.33× | 4.24× | 4.29× | 4.40× | 4.70× | 3.14× | 2.44× | 2.04× | 2.00× | 1.74× | 1.40× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | 40.7% | 42.8% | 41.3% | 39.6% | 42.5% | 40.1% | 47.0% | 37.9% | 7.3% | 28.3% | 28.8% | 23.4% | 25.9% | 27.5% | 27.1% | 38.0% | 27.5% | 28.4% | 27.5% | 30.0% | 29.8% | 30.4% | 30.9% | 25.8% | 34.9% | 23.4% | 25.6% | 42.0% | 56.5% | 56.7% | 55.4% | 48.8% | 47.5% | 42.8% | 36.6% | 35.9% | 34.8% | 34.3% | 28.4% | 26.6% | 24.2% |
| Return on invested capital | 15.9% | 13.3% | 15.2% | 15.7% | 13.6% | 12.1% | 14.3% | 13.3% | 2.4% | 11.5% | 10.7% | 11.7% | 12.8% | 14.5% | 16.1% | 15.2% | 21.1% | 25.9% | 105.2% | 227.4% | 25.5% | 27.1% | 25.6% | 26.3% | 25.7% | 18.0% | 17.9% | 28.4% | 36.1% | 32.2% | 33.5% | 34.5% | 31.9% | 30.9% | 27.8% | 27.0% | 26.7% | 26.8% | 19.8% | 16.2% | 18.9% |
| Dividend yield | 2.9% | 3.1% | 3.1% | 2.8% | 2.8% | 3.0% | 2.9% | 3.2% | 3.2% | 3.4% | 3.1% | 2.9% | 2.7% | 2.8% | 2.7% | 2.7% | 2.9% | 3.4% | 2.2% | 2.6% | 2.8% | 2.4% | 1.7% | 1.8% | 1.5% | 1.1% | 1.1% | 0.9% | 0.8% | 1.0% | 1.2% | 1.5% | 1.5% | 1.3% | 1.2% | 1.8% | 2.3% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 1.46× | 1.03× | 1.13× | 1.15× | 1.13× | 1.32× | 0.76× | 0.87× | 1.12× | 1.28× | 1.24× | 1.02× | 1.13× | 1.09× | 1.05× | 1.17× | 1.28× | 0.94× | 0.92× | 0.95× | 1.04× | 1.10× | 1.06× | 1.00× | 0.85× | 0.71× | 0.66× | 0.74× | 0.81× | 0.80× | 0.74× | 0.84× | 0.86× | 0.80× | 1.01× | 0.96× | 0.99× | 1.13× | 1.00× | 1.36× | 1.48× |
| Debt / equity | 1.37× | 1.73× | 1.45× | 1.53× | 1.72× | 2.10× | 1.67× | 1.79× | 2.02× | 1.44× | 1.21× | 0.74× | 0.61× | 0.50× | 0.50× | 0.49× | 0.21× | 0.16× | 0.43× | 0.27× | 0.35× | 0.45× | 0.38× | 0.45× | 0.45× | 0.61× | 0.65× | 0.61× | 0.53× | 0.73× | 0.75× | 0.67× | 0.68× | 0.82× | 0.52× | 0.66× | 0.57× | 0.70× | 0.84× | 0.49× | 0.44× |
| Effective tax rate | 17.9% | 18.6% | 17.4% | 18.1% | 21.1% | 20.3% | 16.7% | 21.3% | 81.4% | 19.5% | 23.3% | 23.6% | 24.8% | 23.1% | 24.5% | 16.7% | 22.8% | 21.7% | 24.0% | 22.8% | 27.2% | 22.1% | 20.9% | 27.7% | 29.8% | 36.0% | 36.3% | 32.0% | 31.8% | 24.0% | 31.0% | 31.5% | 31.3% | 31.4% | 32.1% | 31.4% | 32.4% | 34.0% | 35.0% | 38.2% | 38.0% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 4,313 | 4,320 | 4,339 | 4,350 | 4,340 | 4,323 | 4,314 | 4,299 | 4,324 | 4,367 | 4,405 | 4,450 | 4,509 | 4,584 | 4,646 | 4,667 | 4,658 | 4,672 | 4,662 | 4,700 | 4,786 | 4,858 | 4,924 | 4,966 | 4,974 | 4,974 | 4,974 | 4,992 | 5,030 | 5,046 | 5,098 | 5,172 | 5,243 | 5,369 | 5,392 | 5,455 | 4,418 | 5,933 | 5,910 | 6,028 | 6,019 |
| 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 | $50,129 | $47,941 | $47,061 | $45,754 | $43,004 | $38,655 | $33,014 | $37,266 | $34,300 | $36,212 | $41,863 | $44,294 | $45,998 | $46,854 | $48,017 | $46,542 | $35,119 | $30,990 | $31,944 | $28,857 | $24,088 | $23,104 | $21,742 | $21,044 | $19,564 | $17,545 | $19,889 | $19,284 | $18,813 | $18,868 | $18,673 | $18,127 | $16,172 | $13,957 | $13,074 | $11,572 | $10,236 | $8,966 | $8,338 | $7,658 | $8,669 | $7,904 |
| Cost of revenue | ($19,105) | ($18,397) | ($18,324) | ($18,520) | ($18,000) | ($15,357) | ($13,433) | ($14,619) | ($13,067) | ($13,256) | ($16,465) | ($17,482) | ($17,889) | ($18,421) | ($19,053) | ($18,215) | ($12,693) | ($11,088) | ($11,374) | ($10,406) | ($8,164) | ($8,195) | ($7,674) | ($7,762) | ($7,105) | ($6,044) | ($6,204) | ($6,009) | ($4,990) | ($5,389) | ($6,105) | ($6,378) | ($5,756) | ($4,800) | ($4,732) | ($4,387) | ($3,965) | ($3,708) | ($3,532) | ($3,481) | ($4,232) | ($3,876) |
| Gross profit | $31,024 | $29,544 | $28,737 | $27,234 | $25,004 | $23,298 | $19,581 | $22,647 | $21,233 | $22,491 | $25,398 | $26,812 | $28,109 | $28,433 | $28,964 | $28,327 | $22,426 | $19,902 | $20,570 | $18,451 | $15,924 | $14,909 | $14,068 | $13,282 | $12,459 | $11,501 | $13,685 | $13,275 | $13,823 | $13,479 | $12,568 | $11,749 | $10,416 | $9,157 | $8,341 | $7,185 | $6,271 | $5,258 | $4,806 | $4,177 | $4,436 | $4,027 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($15,009) | ($14,521) | ($14,582) | ($13,972) | ($12,880) | ($12,144) | ($9,731) | ($12,103) | ($11,002) | ($12,834) | ($15,370) | ($16,427) | ($17,218) | ($17,310) | ($17,738) | ($17,422) | ($13,194) | ($11,358) | ($11,774) | ($10,945) | ($9,616) | ($8,739) | ($8,370) | ($8,061) | ($7,001) | ($6,149) | ($9,994) | ($9,293) | ($8,211) | ($7,852) | ($8,020) | ($7,161) | ($6,297) | ($5,695) | ($5,249) | ($4,604) | ($4,076) | ($3,348) | ($3,038) | ($2,665) | ($2,879) | ($2,665) |
| Total operating expenses | ($16,170) | ($15,782) | ($18,745) | ($15,923) | ($14,095) | ($12,990) | ($10,584) | ($12,561) | ($12,081) | ($14,736) | ($16,741) | ($18,084) | ($18,401) | ($18,205) | ($18,185) | ($18,154) | ($14,013) | ($11,671) | ($12,124) | ($11,199) | ($9,616) | ($8,824) | ($8,370) | ($8,061) | ($7,001) | ($6,149) | ($9,994) | ($9,293) | ($8,856) | ($8,478) | ($8,653) | ($7,723) | ($6,708) | ($6,055) | ($5,571) | ($4,866) | ($4,320) | ($3,532) | ($3,208) | ($2,817) | ($3,291) | ($2,982) |
| Total costs and expenses | ($35,275) | ($34,179) | ($37,069) | ($34,443) | ($32,095) | ($28,347) | ($24,017) | ($27,180) | ($25,148) | ($28,457) | ($33,206) | ($35,566) | ($36,290) | ($36,626) | ($37,238) | ($36,369) | ($26,706) | ($22,759) | ($23,498) | ($21,605) | ($17,780) | ($17,019) | ($16,044) | ($15,823) | ($14,106) | ($12,193) | ($16,198) | ($15,302) | ($13,846) | ($13,867) | ($14,758) | ($14,101) | ($12,464) | ($10,855) | ($10,304) | ($9,253) | ($8,285) | ($7,240) | ($6,740) | ($6,298) | ($7,524) | ($6,858) |
| Operating income | $14,854 | $13,762 | $9,992 | $11,311 | $10,909 | $10,308 | $8,997 | $10,086 | $9,152 | $7,755 | $8,657 | $8,728 | $9,708 | $10,228 | $10,779 | $10,173 | $8,413 | $8,231 | $8,446 | $7,252 | $6,308 | $6,085 | $5,698 | $5,221 | $5,458 | $5,352 | $3,691 | $3,982 | $4,967 | $5,001 | $3,915 | $4,026 | $3,708 | $3,102 | $2,770 | $2,319 | $1,952 | $1,726 | $1,598 | $1,360 | $1,145 | $1,045 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $15,888 | $14,812 | $11,067 | $12,439 | $12,169 | $11,760 | $10,533 | $11,451 | $10,238 | $9,015 | $10,444 | $10,698 | $11,684 | $12,205 | $12,761 | $12,127 | $9,856 | $9,467 | $9,674 | $8,415 | $7,246 | $7,017 | $6,591 | $6,071 | $6,264 | $6,155 | $4,464 | $4,774 | $5,612 | $5,627 | $4,394 | $4,480 | $4,119 | $3,462 | $3,092 | $2,580 | $2,196 | $1,910 | – | – | – | – |
| Interest income | $838 | $786 | $988 | $907 | $449 | $276 | $370 | $563 | $689 | $679 | $642 | $613 | $594 | $534 | $471 | $483 | $317 | $249 | $333 | $236 | – | $235 | $157 | $176 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,566) | ($1,654) | ($1,656) | ($1,527) | ($882) | ($1,597) | ($1,437) | ($946) | ($950) | ($853) | ($733) | ($856) | ($483) | ($463) | ($397) | ($417) | ($733) | ($355) | ($438) | ($456) | – | ($240) | ($196) | ($178) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $17,231 | $15,998 | $13,086 | $12,952 | $11,686 | $12,425 | $9,749 | $10,786 | $8,225 | $6,890 | $8,136 | $9,605 | $9,325 | $11,477 | $11,809 | $11,458 | $14,207 | $8,946 | $7,506 | $7,873 | $6,578 | $6,690 | $6,222 | $5,495 | $5,499 | $5,670 | $3,399 | $3,819 | $5,198 | $6,055 | $4,596 | $4,328 | $3,728 | $3,185 | $2,746 | $2,383 | $2,014 | $1,764 | $1,582 | $1,410 | $1,511 | $1,093 |
| Income tax expense | ($2,828) | ($2,861) | ($2,437) | ($2,249) | ($2,115) | ($2,621) | ($1,981) | ($1,801) | ($1,749) | ($5,607) | ($1,586) | ($2,239) | ($2,201) | ($2,851) | ($2,723) | ($2,812) | ($2,370) | ($2,040) | ($1,632) | ($1,892) | ($1,498) | ($1,818) | ($1,375) | ($1,148) | ($1,523) | ($1,691) | ($1,222) | ($1,388) | ($1,665) | ($1,926) | ($1,104) | ($1,342) | ($1,174) | ($997) | ($862) | ($765) | ($632) | ($572) | ($537) | ($494) | ($577) | ($415) |
| Net income | $14,316 | $13,107 | $10,631 | $10,714 | $9,542 | $9,771 | $7,747 | $8,920 | $6,434 | $1,248 | $6,527 | $7,351 | $7,098 | $8,584 | $9,019 | $8,584 | $11,787 | $6,824 | $5,807 | $5,981 | $5,080 | $4,872 | $4,847 | $4,347 | $3,050 | $3,969 | $2,177 | $2,431 | $3,533 | $4,129 | $3,492 | $2,986 | $2,554 | $2,176 | $1,664 | $1,618 | $1,382 | $1,214 | $1,045 | $916 | $934 | $722 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $3.33 | $3.04 | $2.46 | $2.47 | $2.19 | $2.25 | $1.79 | $2.07 | $1.50 | $0.29 | $1.49 | $1.67 | $1.60 | $1.90 | $1.97 | $1.85 | $2.53 | $1.47 | $1.25 | $1.28 | $1.08 | $1.02 | $1.00 | $0.89 | $0.62 | $0.80 | $0.44 | $0.49 | $0.71 | $0.82 | $0.69 | $0.59 | $0.50 | $0.42 | $0.31 | $0.30 | $0.25 | $0.27 | $0.18 | $0.16 | $0.16 | $0.12 |
| Basic EPS (GAAP) | $3.33 | $3.05 | $2.47 | $2.48 | $2.20 | $2.26 | $1.80 | $2.09 | $1.51 | $0.29 | $1.51 | $1.69 | $1.62 | $1.94 | $2.00 | $1.88 | $2.55 | $1.48 | $1.25 | $1.29 | $1.08 | $1.02 | $1.00 | $0.89 | $0.62 | $0.80 | $0.44 | $0.49 | $0.72 | $0.84 | $0.70 | $0.59 | $0.50 | $0.42 | $0.32 | $0.31 | $0.26 | $0.28 | $0.18 | $0.16 | $0.16 | $0.12 |
| Basic shares outstanding | 4,302 | 4,303 | 4,309 | 4,323 | 4,328 | 4,315 | 4,295 | 4,276 | 4,259 | 4,272 | 4,317 | 4,352 | 4,387 | 4,434 | 4,504 | 4,568 | 4,616 | 4,628 | 4,630 | 4,626 | 4,696 | 4,784 | 4,852 | 4,918 | 4,956 | 4,974 | 4,954 | 4,938 | 4,934 | 4,954 | 4,988 | 5,050 | 5,160 | 5,181 | 5,284 | 5,303 | 5,348 | 4,338 | 5,768 | 5,910 | 6,028 | 6,019 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 61.9% | 61.6% | 61.1% | 59.5% | 58.1% | 60.3% | 59.3% | 60.8% | 61.9% | 62.1% | 60.7% | 60.5% | 61.1% | 60.7% | 60.3% | 60.9% | 63.9% | 64.2% | 64.4% | 63.9% | 66.1% | 64.5% | 64.7% | 63.1% | 63.7% | 65.6% | 68.8% | 68.8% | 73.5% | 71.4% | 67.3% | 64.8% | 64.4% | 65.6% | 63.8% | 62.1% | 61.3% | 58.6% | 57.6% | 54.5% | 51.2% | 51.0% |
| Operating margin | 29.6% | 28.7% | 21.2% | 24.7% | 25.4% | 26.7% | 27.3% | 27.1% | 26.7% | 21.4% | 20.7% | 19.7% | 21.1% | 21.8% | 22.4% | 21.9% | 24.0% | 26.6% | 26.4% | 25.1% | 26.2% | 26.3% | 26.2% | 24.8% | 27.9% | 30.5% | 18.6% | 20.6% | 26.4% | 26.5% | 21.0% | 22.2% | 22.9% | 22.2% | 21.2% | 20.0% | 19.1% | 19.2% | 19.2% | 17.8% | 13.2% | 13.2% |
| Net margin | 28.6% | 27.3% | 22.6% | 23.4% | 22.2% | 25.3% | 23.5% | 23.9% | 18.8% | 3.4% | 15.6% | 16.6% | 15.4% | 18.3% | 18.8% | 18.4% | 33.6% | 22.0% | 18.2% | 20.7% | 21.1% | 21.1% | 22.3% | 20.7% | 15.6% | 22.6% | 10.9% | 12.6% | 18.8% | 21.9% | 18.7% | 16.5% | 15.8% | 15.6% | 12.7% | 14.0% | 13.5% | 13.5% | 12.5% | 12.0% | 10.8% | 9.1% |