
| 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 | $47,757 | $63,192 | $67,167 | $77,567 | $104,291 | $86,803 | $53,058 | $34,099 | $34,952 | $30,520 | $44,614 | $46,887 | $35,972 | $40,157 | $33,989 | $39,328 | $38,555 | $24,036 | $48,230 | $53,464 | $47,778 | $44,729 | $38,578 | $25,615 | $48,609 | $33,402 | $28,609 | $28,054 | $15,682 | $8,543 | $5,708 | $5,199 | $4,902 | $6,000 | $4,953 | $4,975 | $4,528 | $3,632 | $3,266 | $3,845 | $4,299 |
| Enterprise value | $57,948 | $74,412 | $80,111 | $93,068 | $109,862 | $85,757 | $62,645 | $45,219 | $43,873 | $39,647 | $50,320 | $55,882 | $47,871 | $56,891 | $49,484 | $52,213 | $51,552 | $41,924 | $62,870 | $62,688 | $56,002 | $52,022 | $48,888 | $36,018 | $57,103 | $39,537 | $33,408 | $32,507 | $20,169 | $13,383 | $10,674 | $9,749 | $9,233 | $10,607 | $9,537 | $8,922 | $7,241 | $6,205 | $5,281 | $5,009 | $5,059 |
| P/E (TTM) at period end | 12.89× | 15.45× | 16.23× | 27.90× | 15.01× | 19.87× | 16.17× | 11.61× | 11.99× | 11.16× | 13.27× | – | 18.25× | 13.39× | 11.60× | 13.47× | 15.50× | 10.86× | 16.93× | 19.18× | 19.84× | 13.99× | 21.33× | 15.78× | 35.53× | 26.43× | 25.01× | 30.00× | 20.88× | 18.45× | 18.35× | 11.98× | 13.07× | 15.67× | 16.45× | 12.13× | 11.04× | 12.66× | 14.30× | 14.96× | 15.16× |
| P/S (TTM) at period end | 0.46× | 0.59× | 0.63× | 0.71× | 0.98× | 0.93× | 0.68× | 0.45× | 0.49× | 0.44× | 0.60× | 0.65× | 0.50× | 0.55× | 0.49× | 0.58× | 0.59× | 0.37× | 0.76× | 0.90× | 0.91× | 0.95× | 0.92× | 0.68× | 1.22× | 0.91× | 0.85× | 0.91× | 0.56× | 0.34× | 0.24× | 0.24× | 0.25× | 0.33× | 0.31× | 0.34× | 0.33× | 0.30× | 0.31× | 0.42× | 0.49× |
| P/B at period end | 2.95× | 4.31× | 5.00× | 6.91× | 8.13× | 6.01× | 4.48× | 3.02× | 3.00× | 2.80× | 3.44× | 3.35× | 2.22× | 2.43× | 2.15× | 2.54× | 2.51× | 1.75× | 3.15× | 3.42× | 3.36× | 3.43× | 3.49× | 2.71× | 6.18× | 5.12× | 4.88× | 5.26× | 3.49× | 2.22× | 1.65× | 1.61× | 1.70× | 2.31× | 2.16× | 2.40× | 2.58× | 1.95× | 1.64× | 1.76× | 2.21× |
| EV / EBITDA (TTM) | 7.02× | 8.71× | 9.42× | 14.21× | 9.48× | 9.50× | 8.63× | 6.87× | 6.55× | 5.52× | 7.06× | 8.39× | 7.07× | 7.85× | 6.70× | 7.20× | 7.81× | 6.73× | 9.07× | 9.55× | 9.77× | 10.70× | 11.48× | 9.53× | 15.19× | 11.57× | 10.50× | 11.89× | 8.28× | 6.66× | 6.94× | 5.83× | 5.95× | 7.04× | 7.45× | 6.58× | 5.73× | – | – | – | – |
| EV / Sales (TTM) | 0.55× | 0.70× | 0.75× | 0.85× | 1.04× | 0.92× | 0.80× | 0.60× | 0.61× | 0.57× | 0.68× | 0.77× | 0.67× | 0.78× | 0.71× | 0.77× | 0.79× | 0.65× | 0.99× | 1.05× | 1.06× | 1.11× | 1.16× | 0.96× | 1.43× | 1.07× | 0.99× | 1.06× | 0.73× | 0.53× | 0.45× | 0.46× | 0.48× | 0.59× | 0.59× | 0.61× | 0.53× | 0.51× | 0.49× | 0.54× | 0.58× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | 22.9% | 27.9% | 30.8% | 24.8% | 54.2% | 30.2% | 27.7% | 26.0% | 25.0% | 25.0% | 25.9% | (11.7%) | 12.1% | 18.1% | 18.5% | 18.9% | 16.2% | 16.1% | 18.6% | 17.8% | 17.0% | 24.5% | 16.3% | 17.2% | 17.4% | 19.4% | 19.5% | 17.5% | 16.7% | 12.1% | 9.0% | 13.4% | 13.0% | 14.8% | 13.1% | 19.8% | 23.4% | 15.4% | 11.5% | 11.8% | 14.6% |
| Return on invested capital | 12.8% | 14.5% | 15.2% | 11.1% | 29.8% | 24.5% | 15.6% | 14.1% | 15.1% | 15.5% | 15.3% | 12.4% | 11.1% | 10.2% | 11.0% | 11.4% | 9.8% | 8.6% | 10.8% | 12.6% | 12.0% | 11.0% | 9.2% | 8.8% | 10.2% | 12.1% | 13.4% | 12.3% | 11.7% | 9.5% | 6.9% | 8.9% | 9.0% | 9.1% | 8.1% | 10.2% | 12.8% | 9.5% | 7.9% | 9.4% | 12.6% |
| Dividend yield | 4.3% | 3.2% | 3.0% | 2.4% | 1.5% | 1.5% | 2.5% | 3.9% | 3.8% | 4.4% | 3.1% | 2.6% | 2.8% | 2.2% | 2.2% | 1.5% | 1.3% | 1.9% | 0.9% | 0.7% | 0.7% | 0.6% | 0.6% | 0.9% | 0.4% | 0.6% | 0.7% | 0.6% | 1.1% | 1.8% | 2.6% | 2.8% | 2.8% | 2.2% | 2.6% | 2.3% | 1.9% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 0.94× | 0.94× | 0.91× | 0.92× | 0.99× | 1.03× | 0.89× | 0.83× | 0.96× | 0.94× | 1.12× | 1.16× | 0.91× | 1.17× | 1.15× | 1.71× | 1.63× | 1.66× | 1.60× | 1.32× | 1.50× | 1.69× | 1.55× | 1.59× | 1.37× | 1.16× | 1.11× | 1.19× | 1.22× | 1.32× | 1.41× | 1.46× | 1.47× | 1.49× | 1.56× | 1.51× | 1.42× | 1.49× | 1.46× | 1.84× | 1.80× |
| Debt / equity | 1.02× | 1.09× | 1.19× | 1.44× | 1.07× | 0.88× | 0.97× | 1.00× | 0.98× | 1.17× | 0.98× | 0.91× | 0.77× | 1.01× | 1.11× | 1.02× | 1.10× | 1.37× | 1.12× | 0.64× | 0.69× | 0.73× | 1.00× | 1.18× | 1.14× | 1.00× | 0.86× | 0.88× | 1.05× | 1.31× | 1.48× | 1.45× | 1.61× | 1.82× | 2.04× | 1.95× | 1.61× | 1.41× | 1.10× | 0.64× | 0.49× |
| Effective tax rate | 22.3% | 22.2% | 21.9% | 18.7% | 22.0% | 21.2% | 22.0% | 20.3% | 19.9% | 32.7% | 32.5% | 33.0% | 34.6% | 34.4% | 34.3% | 35.0% | 35.7% | 37.4% | 38.4% | 38.0% | 37.6% | 37.8% | 37.8% | 38.2% | 38.0% | 38.4% | 38.8% | 38.2% | 39.5% | 39.5% | 37.9% | 39.2% | 38.2% | 37.3% | 36.2% | 37.8% | 39.5% | 39.2% | 42.9% | 48.4% | 45.9% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 456 | 462 | 463 | 465 | 493 | 505 | 516 | 533 | 550 | 582 | 633 | 640 | 642 | 663 | 684 | 729 | 755 | 774 | 851 | 869 | 889 | 912 | 1,028 | 914 | 1,131 | 913 | 930 | 935 | 927 | 965 | 942 | 943 | 938 | 958 | 971 | 953 | 911 | 990 | 1,142 | 1,118 | 1,134 |
| 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 | $107,705 | $104,780 | $106,566 | $107,412 | $109,120 | $106,005 | $93,561 | $78,112 | $75,356 | $71,879 | $69,495 | $73,785 | $72,618 | $71,279 | $73,301 | $69,865 | $67,390 | $65,357 | $64,948 | $63,367 | $59,490 | $52,620 | $46,839 | $42,025 | $37,410 | $39,826 | $36,903 | $33,702 | $30,662 | $27,757 | $25,371 | $23,516 | $21,311 | $19,233 | $17,927 | $16,115 | $14,739 | $13,644 | $12,204 | $10,677 | $9,259 | $8,793 |
| Cost of revenue | ($76,144) | ($75,511) | ($76,502) | ($77,828) | ($82,306) | ($74,963) | ($66,177) | ($54,864) | ($53,299) | ($51,125) | ($49,145) | ($52,241) | ($51,278) | ($50,039) | ($50,568) | ($47,860) | ($45,725) | ($44,062) | ($44,157) | ($42,929) | ($40,106) | ($35,703) | ($31,445) | ($28,389) | ($25,498) | ($27,143) | ($25,295) | ($23,029) | ($21,085) | ($20,320) | ($18,628) | ($17,527) | ($15,636) | ($14,164) | ($13,129) | ($11,751) | ($10,649) | ($9,886) | ($8,885) | ($7,851) | ($6,703) | ($6,269) |
| Gross profit | $31,561 | $29,269 | $30,064 | $29,584 | $26,814 | $31,042 | $27,384 | $23,248 | $22,057 | $20,754 | $20,350 | $21,544 | $21,340 | $21,240 | $22,733 | $22,005 | $21,665 | $21,295 | $20,791 | $20,438 | $19,384 | $16,917 | $15,394 | $13,636 | $11,912 | $12,683 | $11,608 | $10,673 | $9,577 | $7,437 | $6,743 | $5,989 | $5,675 | $5,069 | $4,798 | $4,364 | $4,090 | $3,758 | $3,319 | $2,826 | $2,556 | $2,524 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($22,872) | ($21,535) | ($21,969) | ($21,462) | ($20,581) | ($19,752) | ($18,615) | ($16,233) | ($15,723) | ($15,140) | ($14,217) | ($14,665) | ($14,676) | ($14,465) | ($14,643) | ($14,106) | ($13,469) | ($13,078) | ($12,954) | ($12,670) | ($12,819) | ($11,185) | ($10,534) | ($9,379) | ($8,134) | ($8,924) | ($8,190) | ($7,490) | ($6,843) | ($4,532) | ($4,289) | ($4,043) | ($3,631) | ($3,175) | ($2,978) | ($2,801) | ($2,478) | ($2,264) | ($2,131) | ($1,866) | ($1,611) | ($1,573) |
| Total operating expenses | ($25,538) | ($24,152) | ($24,498) | ($23,877) | ($22,966) | ($22,096) | ($20,845) | ($18,590) | ($17,947) | ($16,530) | ($15,486) | ($16,634) | ($16,805) | ($16,461) | ($17,527) | ($16,755) | ($16,496) | ($16,719) | ($16,389) | ($15,166) | ($14,315) | ($12,594) | ($11,793) | ($10,477) | ($9,101) | ($10,003) | ($9,130) | ($8,344) | ($7,623) | ($5,695) | ($5,384) | ($5,046) | ($4,535) | ($4,016) | ($3,750) | ($3,494) | ($3,106) | ($2,813) | ($2,629) | ($2,275) | ($1,944) | ($1,892) |
| Total costs and expenses | ($101,682) | ($99,663) | ($101,000) | ($101,705) | ($105,272) | ($97,059) | ($87,022) | ($73,454) | ($71,246) | ($67,655) | ($64,631) | ($68,875) | ($68,083) | ($66,500) | ($68,095) | ($64,615) | ($62,221) | ($60,781) | ($60,546) | ($58,095) | ($54,421) | ($48,297) | ($43,238) | ($38,866) | ($34,599) | ($37,146) | ($34,425) | ($31,373) | ($28,708) | ($26,015) | ($24,012) | ($22,573) | ($20,171) | ($18,180) | ($16,879) | ($15,245) | ($13,755) | ($12,699) | ($11,514) | ($10,126) | ($8,647) | ($8,161) |
| Operating income | $6,023 | $5,117 | $5,566 | $5,707 | $3,848 | $8,946 | $6,539 | $4,658 | $4,110 | $4,224 | $4,864 | $4,910 | $4,535 | $4,779 | $5,206 | $5,250 | $5,169 | $4,576 | $4,402 | $5,272 | $5,069 | $4,323 | $3,601 | $3,159 | $2,811 | $2,680 | $2,478 | $2,329 | $1,954 | $1,742 | $1,359 | $943 | $1,140 | $1,053 | $1,048 | $870 | $984 | $945 | $690 | $552 | $612 | $632 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $9,196 | $8,251 | $8,547 | $8,508 | $6,548 | $11,588 | $9,024 | $7,262 | $6,584 | $6,700 | $7,182 | $7,123 | $6,664 | $6,775 | $7,250 | $7,381 | $7,253 | $6,599 | $6,228 | $6,931 | $6,565 | $5,732 | $4,860 | $4,257 | $3,778 | $3,759 | $3,418 | $3,183 | $2,734 | $2,435 | $2,009 | $1,537 | $1,671 | $1,551 | $1,507 | $1,280 | $1,356 | $1,264 | – | – | – | – |
| Interest income | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | $3 | $3 | $3 | $28 | $21 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($429) | ($445) | ($411) | ($502) | ($478) | ($421) | ($977) | ($477) | ($461) | ($653) | ($991) | ($607) | ($882) | ($1,049) | ($684) | ($866) | ($757) | ($801) | ($866) | ($647) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $5,659 | $4,767 | $5,261 | $5,297 | $3,418 | $8,907 | $5,546 | $4,190 | $3,676 | $3,630 | $3,961 | $4,923 | $3,653 | $4,121 | $5,056 | $4,456 | $4,495 | $3,872 | $3,536 | $4,625 | $4,497 | $3,860 | $3,031 | $2,603 | $2,227 | $2,207 | $2,053 | $1,936 | $1,556 | $1,326 | $783 | $501 | $714 | $607 | $611 | $472 | $659 | $678 | $472 | $400 | $494 | $525 |
| Income tax expense | ($1,267) | ($1,062) | ($1,170) | ($1,159) | ($638) | ($1,961) | ($1,178) | ($921) | ($746) | ($722) | ($1,295) | ($1,602) | ($1,204) | ($1,427) | ($1,741) | ($1,527) | ($1,575) | ($1,384) | ($1,322) | ($1,776) | ($1,710) | ($1,452) | ($1,146) | ($984) | ($851) | ($839) | ($789) | ($751) | ($594) | ($524) | ($309) | ($190) | ($280) | ($232) | ($228) | ($171) | ($249) | ($268) | ($185) | ($171) | ($239) | ($241) |
| Net income | $4,393 | $3,705 | $4,091 | $4,138 | $2,780 | $6,946 | $4,368 | $3,281 | $2,937 | $2,914 | $2,734 | $3,363 | ($1,636) | $1,971 | $2,999 | $2,929 | $2,920 | $2,488 | $2,214 | $2,849 | $2,787 | $2,408 | $3,198 | $1,809 | $1,623 | $1,368 | $1,264 | $1,144 | $935 | $751 | $463 | $311 | $434 | $375 | $383 | $301 | $410 | $410 | $287 | $228 | $257 | $284 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $9.63 | $8.13 | $8.86 | $8.94 | $5.98 | $14.10 | $8.64 | $6.36 | $5.51 | $5.29 | $4.69 | $5.31 | ($2.56) | $3.07 | $4.52 | $4.28 | $4.00 | $3.30 | $2.86 | $3.33 | $3.21 | $2.71 | $3.51 | $1.76 | $1.78 | $1.21 | $1.38 | $1.23 | $0.99 | $0.80 | $0.48 | $0.33 | $0.46 | $0.40 | $0.40 | $0.31 | $0.43 | $0.45 | $0.29 | $0.20 | $0.23 | $0.25 |
| Basic EPS (GAAP) | $9.68 | $8.16 | $8.89 | $8.96 | $6.02 | $14.23 | $8.72 | $6.42 | $5.55 | $5.32 | $4.73 | $5.35 | ($2.58) | $3.10 | $4.57 | $4.31 | $4.03 | $3.31 | $2.87 | $3.37 | $3.23 | $2.73 | $3.54 | $1.78 | $1.79 | $1.22 | $1.40 | $1.25 | $1.04 | $0.84 | $0.51 | $0.34 | $0.48 | $0.42 | $0.42 | $0.33 | $0.45 | $0.45 | $0.29 | $0.20 | $0.23 | $0.25 |
| Basic shares outstanding | 454 | 454 | 460 | 462 | 462 | 488 | 501 | 511 | 529 | 547 | 578 | 628 | 635 | 635 | 657 | 679 | 724 | 752 | 770 | 845 | 862 | 882 | 904 | 1,016 | 908 | 1,121 | 904 | 903 | 880 | 872 | 908 | 915 | 904 | 893 | 912 | 912 | 911 | 911 | 990 | 1,142 | 1,118 | 1,134 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 29.3% | 27.9% | 28.2% | 27.5% | 24.6% | 29.3% | 29.3% | 29.8% | 29.3% | 28.9% | 29.3% | 29.2% | 29.4% | 29.8% | 31.0% | 31.5% | 32.1% | 32.6% | 32.0% | 32.3% | 32.6% | 32.1% | 32.9% | 32.4% | 31.8% | 31.8% | 31.5% | 31.7% | 31.2% | 26.8% | 26.6% | 25.5% | 26.6% | 26.4% | 26.8% | 27.1% | 27.7% | 27.5% | 27.2% | 26.5% | 27.6% | 28.7% |
| Operating margin | 5.6% | 4.9% | 5.2% | 5.3% | 3.5% | 8.4% | 7.0% | 6.0% | 5.5% | 5.9% | 7.0% | 6.7% | 6.2% | 6.7% | 7.1% | 7.5% | 7.7% | 7.0% | 6.8% | 8.3% | 8.5% | 8.2% | 7.7% | 7.5% | 7.5% | 6.7% | 6.7% | 6.9% | 6.4% | 6.3% | 5.4% | 4.0% | 5.3% | 5.5% | 5.8% | 5.4% | 6.7% | 6.9% | 5.7% | 5.2% | 6.6% | 7.2% |
| Net margin | 4.1% | 3.5% | 3.8% | 3.9% | 2.5% | 6.6% | 4.7% | 4.2% | 3.9% | 4.1% | 3.9% | 4.6% | (2.3%) | 2.8% | 4.1% | 4.2% | 4.3% | 3.8% | 3.4% | 4.5% | 4.7% | 4.6% | 6.8% | 4.3% | 4.3% | 3.4% | 3.4% | 3.4% | 3.0% | 2.7% | 1.8% | 1.3% | 2.0% | 1.9% | 2.1% | 1.9% | 2.8% | 3.0% | 2.4% | 2.1% | 2.8% | 3.2% |