
| 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 | $39,775 | $44,603 | $33,194 | $32,248 | $31,962 | $25,366 | $19,749 | $20,639 | $21,572 | $31,296 | $37,829 | $33,926 | $18,555 | $14,871 | $14,327 | $13,530 | $13,863 | $14,670 | $17,926 | $18,490 | $13,437 | $12,689 | $13,849 | $11,763 | $16,764 | $20,262 | $13,728 | – | – | – | – | $2,743 | – | $1,080 | $1,777 | $1,236 | $1,000 | $718 | $2,060 | $2,766 | $2,079 |
| Enterprise value | $59,886 | $64,410 | $49,329 | $50,490 | $49,476 | $43,144 | $39,320 | $34,207 | $35,627 | $44,153 | $48,686 | $44,297 | $28,517 | $22,564 | $21,503 | $19,933 | $20,915 | $21,934 | $25,805 | $25,329 | $19,971 | $20,010 | $21,475 | $20,166 | $25,433 | $28,647 | $22,460 | – | – | – | – | $6,621 | – | $5,529 | $6,261 | $5,835 | $5,793 | $5,387 | $3,041 | $3,445 | $2,843 |
| P/E (TTM) at period end | 39.42× | 16.86× | 15.47× | 14.50× | 19.50× | 9.92× | 12.04× | 6.71× | 11.41× | 15.98× | 18.72× | 19.83× | 12.31× | 10.01× | 23.80× | 12.12× | 198.04× | 11.75× | 14.83× | 16.58× | 14.03× | – | 48.59× | 9.76× | 16.07× | 23.10× | 22.40× | – | – | – | – | 11.33× | – | – | 17.64× | 14.83× | – | 20.82× | 11.24× | 53.71× | 11.50× |
| P/S (TTM) at period end | 0.27× | 0.30× | 0.22× | 0.22× | 0.23× | 0.19× | 0.16× | 0.17× | 0.17× | 0.27× | 0.34× | 0.31× | 0.19× | 0.15× | 0.16× | 0.16× | 0.18× | 0.19× | 0.25× | 0.28× | 0.22× | 0.22× | 0.26× | 0.23× | 0.33× | 0.41× | 0.30× | – | – | – | – | 0.12× | – | 0.05× | 0.08× | 0.06× | 0.05× | 0.04× | 0.12× | 0.16× | 0.12× |
| P/B at period end | 6.71× | 5.38× | 2.86× | 3.21× | 3.38× | 2.65× | 2.30× | 2.62× | 3.11× | 4.67× | 5.55× | 6.27× | 3.45× | 3.53× | 3.60× | 2.55× | 2.86× | 2.82× | 3.65× | 3.76× | 3.06× | 3.58× | 3.48× | 3.06× | 4.79× | 6.56× | 5.13× | – | – | – | – | – | – | – | – | – | – | – | 2.04× | 2.69× | 1.75× |
| EV / EBITDA (TTM) | 11.47× | 9.08× | 7.93× | 7.12× | 7.85× | 7.81× | 8.02× | 6.73× | 7.06× | 7.62× | 8.59× | 8.71× | 6.44× | 5.11× | 7.37× | 5.27× | 8.00× | 5.63× | 6.94× | 7.22× | 6.05× | 9.53× | 8.42× | 5.51× | 7.40× | 8.43× | 7.32× | – | – | – | – | 6.35× | – | 6.14× | 6.65× | 6.36× | 6.83× | – | – | – | – |
| EV / Sales (TTM) | 0.41× | 0.44× | 0.33× | 0.34× | 0.36× | 0.33× | 0.32× | 0.28× | 0.29× | 0.38× | 0.44× | 0.41× | 0.29× | 0.23× | 0.24× | 0.24× | 0.27× | 0.29× | 0.37× | 0.38× | 0.33× | 0.35× | 0.40× | 0.39× | 0.51× | 0.58× | 0.50× | – | – | – | – | 0.29× | – | 0.25× | 0.29× | 0.29× | 0.30× | 0.28× | 0.17× | 0.20× | 0.17× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | 17.0% | 31.9% | 18.5% | 22.1% | 17.3% | 26.7% | 19.1% | 39.0% | 27.3% | 29.2% | 29.6% | 31.6% | 28.0% | 35.3% | 15.1% | 21.1% | 1.4% | 24.0% | 24.6% | 22.6% | 21.8% | (2.9%) | 7.2% | 31.3% | 29.8% | 28.4% | 22.9% | – | – | – | – | – | – | – | – | – | – | – | 18.2% | 5.0% | 15.2% |
| Return on invested capital | 5.9% | 10.5% | 8.2% | 10.9% | 10.1% | 7.5% | 5.9% | 8.9% | 11.8% | 11.3% | 12.7% | 12.3% | 11.2% | 14.1% | 7.6% | 11.5% | 0.8% | 11.9% | 11.9% | 12.1% | 11.2% | – | 4.2% | 13.1% | 11.8% | 12.2% | 10.5% | – | – | – | – | 27.7% | – | 21.6% | 24.1% | 22.7% | 33.2% | 17.0% | 11.7% | 12.0% | 11.8% |
| Dividend yield | 2.2% | 2.0% | 2.4% | 2.1% | 1.8% | 2.1% | 2.5% | 2.1% | 2.1% | 1.4% | 1.0% | 1.0% | 1.7% | 1.8% | 1.8% | 1.8% | 1.7% | 1.5% | 1.1% | 0.8% | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | 0.2% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 0.80× | 0.96× | 0.81× | 0.74× | 0.75× | 0.81× | 0.76× | 0.76× | 0.78× | 0.80× | 0.76× | 0.78× | 0.82× | 0.72× | 0.80× | 0.94× | 0.97× | 0.95× | 0.82× | 0.89× | 0.96× | 1.01× | 1.01× | 0.99× | 1.00× | 1.01× | 0.98× | – | – | – | – | 0.90× | – | 1.00× | 0.95× | 0.95× | 0.99× | 1.14× | 1.10× | 1.10× | 1.16× |
| Debt / equity | 2.68× | 1.92× | 0.88× | 1.12× | 1.24× | 1.30× | 1.54× | 1.93× | 2.25× | 2.10× | 1.77× | 2.14× | 2.10× | 2.11× | 2.04× | 1.48× | 1.65× | 1.54× | 1.65× | 1.43× | 1.65× | 2.25× | 2.10× | 2.23× | 2.52× | 2.77× | 3.37× | – | – | – | – | (1.81×) | – | (1.69×) | (1.63×) | (1.63×) | (1.66×) | (1.67×) | 1.09× | 0.87× | 0.73× |
| Effective tax rate | 14.7% | 20.0% | 23.5% | 22.5% | 18.8% | 23.2% | 23.7% | 22.6% | (27.3%) | 32.8% | 33.8% | 34.1% | 32.9% | 34.5% | 29.3% | 34.7% | 90.3% | 36.5% | 35.2% | 36.2% | 37.2% | 136.4% | 61.4% | 37.5% | 39.0% | 41.6% | 43.5% | 43.3% | 38.3% | 37.8% | 37.4% | 36.2% | 39.8% | 41.7% | 40.3% | 41.4% | (85.2%) | 33.4% | 43.3% | 41.6% | 43.6% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 655 | 720 | 725 | 727 | 754 | 781 | 805 | 818 | 904 | 958 | 980 | 993 | 1,040 | 1,074 | 1,186 | 1,276 | 1,300 | 1,316 | 1,394 | 1,446 | 1,462 | 1,472 | 1,508 | 1,582 | 1,650 | 1,692 | 1,716 | 1,058 | 1,047 | 1,044 | 1,034 | 1,038 | 999 | 590 | 719 | 694 | 543 | 647 | 667 | 742 | 695 |
| 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 | $149,326 | $147,642 | $147,123 | $150,039 | $148,258 | $137,888 | $132,498 | $122,286 | $121,852 | $123,280 | $115,337 | $109,830 | $108,465 | $98,375 | $96,619 | $90,269 | $82,049 | $76,609 | $76,148 | $70,336 | $66,111 | $60,553 | $56,434 | $53,791 | $51,760 | $50,098 | $49,000 | $45,352 | $43,082 | $33,927 | $25,171 | $23,938 | $22,959 | $22,384 | $22,145 | $21,350 | $20,261 | $19,104 | $19,053 | $17,660 | $17,122 | $17,124 |
| Cost of revenue | ($114,815) | ($113,240) | ($113,720) | ($116,675) | ($116,480) | ($107,539) | ($101,597) | ($95,294) | ($94,894) | ($95,662) | ($89,502) | ($85,496) | ($85,512) | ($78,138) | ($76,726) | ($71,389) | ($63,803) | ($58,848) | ($58,544) | ($53,711) | ($50,115) | ($45,565) | ($42,140) | ($39,637) | ($37,810) | ($36,398) | ($35,806) | ($33,316) | ($32,063) | ($25,468) | ($19,275) | ($18,085) | ($17,390) | ($17,030) | ($17,079) | ($16,481) | ($15,670) | ($14,846) | ($14,824) | ($13,696) | ($16,561) | ($13,079) |
| Gross profit | $34,511 | $34,402 | $33,403 | $33,364 | $31,778 | $30,349 | $30,901 | $26,992 | $26,958 | $27,618 | $25,835 | $24,334 | $22,953 | $20,237 | $19,893 | $18,880 | $18,246 | $17,761 | $17,604 | $16,625 | $15,996 | $14,988 | $14,294 | $14,154 | $13,950 | $13,700 | $13,194 | $12,036 | $11,019 | $8,459 | $5,896 | $5,853 | $5,570 | $5,354 | $5,066 | $4,870 | $4,591 | $4,258 | $4,229 | $3,963 | $562 | $4,044 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($28,332) | ($28,308) | ($25,431) | ($26,252) | ($23,848) | ($23,203) | ($24,500) | ($21,208) | ($20,786) | ($21,510) | ($19,162) | ($17,946) | ($17,161) | ($15,196) | ($14,849) | ($15,345) | ($13,823) | ($13,412) | ($659) | ($643) | ($12,488) | ($11,688) | ($11,291) | ($11,011) | ($10,274) | ($10,133) | ($9,797) | ($8,968) | ($8,380) | ($6,525) | ($4,672) | ($4,706) | ($4,528) | ($4,315) | ($4,166) | ($3,928) | ($3,673) | ($3,410) | ($3,531) | ($3,329) | – | ($3,427) |
| Total operating expenses | ($32,428) | ($32,512) | ($29,554) | ($30,268) | ($27,652) | ($26,872) | ($28,121) | ($24,741) | ($24,344) | ($25,006) | ($22,383) | ($20,758) | ($19,816) | ($17,512) | ($17,129) | ($17,602) | ($16,064) | ($16,670) | ($15,152) | ($14,263) | ($13,760) | ($12,953) | ($13,451) | ($12,811) | ($11,377) | ($11,341) | ($10,805) | ($9,914) | ($9,216) | ($7,117) | ($5,029) | ($5,031) | ($4,821) | ($4,658) | ($4,418) | ($4,170) | ($3,918) | ($3,652) | ($3,785) | ($3,552) | ($211) | ($3,636) |
| Total costs and expenses | ($147,243) | ($145,752) | ($143,274) | ($146,943) | ($144,132) | ($134,411) | ($129,718) | ($120,035) | ($119,238) | ($120,668) | ($111,885) | ($106,254) | ($105,328) | ($95,650) | ($93,855) | ($88,991) | ($79,867) | ($75,518) | ($73,696) | ($67,974) | ($63,875) | ($58,518) | ($55,591) | ($52,448) | ($49,187) | ($47,739) | ($46,611) | ($43,230) | ($41,279) | ($32,585) | ($24,304) | ($23,116) | ($22,210) | ($21,688) | ($21,496) | ($20,651) | ($19,588) | ($18,497) | ($18,609) | ($17,248) | ($16,772) | ($16,716) |
| Operating income | $2,083 | $1,890 | $3,849 | $3,096 | $4,126 | $3,477 | $2,780 | $2,251 | $2,614 | $2,612 | $3,452 | $3,576 | $3,137 | $2,725 | $2,764 | $1,278 | $2,182 | $1,091 | $2,452 | $2,362 | $2,236 | $2,035 | $843 | $1,343 | $2,573 | $2,359 | $2,389 | $2,122 | $1,803 | $1,342 | $867 | $822 | $749 | $697 | $648 | $700 | $674 | $606 | $444 | $411 | $351 | $408 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $5,313 | $5,222 | $7,095 | $6,221 | $7,091 | $6,301 | $5,527 | $4,900 | $5,079 | $5,048 | $5,792 | $5,665 | $5,085 | $4,428 | $4,416 | $2,916 | $3,782 | $2,616 | $3,895 | $3,717 | $3,508 | $3,300 | $2,099 | $2,552 | $3,660 | $3,435 | $3,397 | $3,068 | $2,639 | $1,934 | $1,224 | $1,147 | $1,042 | $1,040 | $900 | $942 | $918 | $848 | – | – | – | – |
| Interest income | – | $199 | $311 | $118 | $33 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($660) | ($639) | ($450) | ($441) | ($535) | ($571) | ($544) | ($603) | ($620) | ($601) | ($522) | ($482) | ($488) | ($443) | ($462) | ($435) | ($448) | ($502) | ($485) | ($474) | ($488) | ($510) | ($557) | ($604) | ($660) | ($689) | ($884) | ($1,045) | ($306) | ($318) | ($303) | ($329) | ($354) | ($413) | ($475) | ($531) | ($531) | ($615) | ($393) | ($70) | ($259) | ($70) |
| Pre-tax income | $1,343 | $1,200 | $3,342 | $2,836 | $2,902 | $2,051 | $3,370 | $1,981 | $3,978 | $1,484 | $2,914 | $3,094 | $2,649 | $2,282 | $2,302 | $843 | $1,734 | $589 | $1,967 | $1,888 | $1,748 | $1,525 | $286 | $739 | $1,973 | $1,711 | $1,508 | $1,102 | $889 | $954 | $567 | $510 | $421 | $284 | $174 | $169 | $142 | ($9) | $52 | $323 | $96 | $321 |
| Income tax expense | ($251) | ($176) | ($670) | ($667) | ($653) | ($385) | ($782) | ($469) | ($900) | $405 | ($957) | ($1,045) | ($902) | ($751) | ($794) | ($247) | ($601) | ($532) | ($717) | ($664) | ($633) | ($567) | ($390) | ($454) | ($740) | ($668) | ($628) | ($479) | ($385) | ($365) | ($215) | ($191) | ($152) | ($113) | ($72) | ($68) | ($59) | ($8) | ($17) | ($140) | ($40) | ($140) |
| Net income | $1,085 | $1,016 | $2,665 | $2,164 | $2,244 | $1,655 | $2,585 | $1,659 | $3,110 | $1,907 | $1,975 | $2,039 | $1,728 | $1,519 | $1,497 | $602 | $1,116 | $70 | $1,249 | $1,209 | $1,115 | $958 | ($104) | $285 | $1,205 | $1,043 | $877 | $613 | $247 | $465 | $350 | $303 | $242 | ($12) | ($6) | $101 | $83 | ($16) | $34 | $183 | $52 | $181 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $1.84 | $1.54 | $3.67 | $2.96 | $3.06 | $2.17 | $3.27 | $2.04 | $3.76 | $2.09 | $2.05 | $2.06 | $1.72 | $1.45 | $1.39 | $0.505 | $0.87 | $0.055 | $0.945 | $0.865 | $0.77 | $0.66 | ($0.07) | $0.21 | $0.76 | $0.63 | $0.52 | $0.36 | $0.23 | $0.32 | $0.34 | $0.30 | $0.25 | ($0.0122) | ($0.01) | $0.14 | $0.12 | ($0.03) | $0.03 | $0.28 | $0.065 | $0.26 |
| Basic EPS (GAAP) | $1.85 | $1.55 | $3.70 | $2.99 | $3.10 | $2.20 | $3.31 | $2.05 | $3.80 | $2.11 | $2.08 | $2.09 | $1.74 | $1.47 | $1.39 | $0.505 | $0.875 | $0.055 | $0.955 | $0.875 | $0.78 | $0.66 | ($0.07) | $0.21 | $0.77 | $0.63 | $0.54 | $0.37 | $0.24 | $0.46 | $0.35 | $0.32 | $0.27 | ($0.0148) | ($0.01) | $0.14 | $0.12 | ($0.03) | $0.03 | $0.28 | $0.065 | $0.26 |
| Basic shares outstanding | 626 | 652 | 715 | 718 | 718 | 744 | 773 | 799 | 810 | 895 | 942 | 966 | 981 | 1,028 | 1,066 | 1,180 | 1,270 | 1,294 | 1,304 | 1,380 | 1,430 | 1,448 | 1,472 | 1,494 | 1,558 | 1,650 | 1,646 | 1,658 | 1,024 | 1,010 | 999 | 963 | 908 | 825 | 590 | 719 | 694 | 543 | 647 | 667 | 742 | 695 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 23.1% | 23.3% | 22.7% | 22.2% | 21.4% | 22.0% | 23.3% | 22.1% | 22.1% | 22.4% | 22.4% | 22.2% | 21.2% | 20.6% | 20.6% | 20.9% | 22.2% | 23.2% | 23.1% | 23.6% | 24.2% | 24.8% | 25.3% | 26.3% | 27.0% | 27.3% | 26.9% | 26.5% | 25.6% | 24.9% | 23.4% | 24.5% | 24.3% | 23.9% | 22.9% | 22.8% | 22.7% | 22.3% | 22.2% | 22.4% | 3.3% | 23.6% |
| Operating margin | 1.4% | 1.3% | 2.6% | 2.1% | 2.8% | 2.5% | 2.1% | 1.8% | 2.1% | 2.1% | 3.0% | 3.3% | 2.9% | 2.8% | 2.9% | 1.4% | 2.7% | 1.4% | 3.2% | 3.4% | 3.4% | 3.4% | 1.5% | 2.5% | 5.0% | 4.7% | 4.9% | 4.7% | 4.2% | 4.0% | 3.4% | 3.4% | 3.3% | 3.1% | 2.9% | 3.3% | 3.3% | 3.2% | 2.3% | 2.3% | 2.0% | 2.4% |
| Net margin | 0.7% | 0.7% | 1.8% | 1.4% | 1.5% | 1.2% | 2.0% | 1.4% | 2.6% | 1.5% | 1.7% | 1.9% | 1.6% | 1.5% | 1.5% | 0.7% | 1.4% | 0.1% | 1.6% | 1.7% | 1.7% | 1.6% | (0.2%) | 0.5% | 2.3% | 2.1% | 1.8% | 1.4% | 0.6% | 1.4% | 1.4% | 1.3% | 1.1% | (0.1%) | (0.0%) | 0.5% | 0.4% | (0.1%) | 0.2% | 1.0% | 0.3% | 1.1% |