
| 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 | $25,863 | $34,220 | $26,021 | $27,784 | $32,839 | $24,668 | $25,741 | $38,199 | $35,994 | $24,791 | $48,480 | – | – | – | – | – | – | – | – | – | – | – | – | $17,918 | $14,791 | $41,777 | $26,658 | $22,066 | $22,387 | $16,432 | $17,253 | $9,021 | $6,720 | $5,057 | $4,431 | $2,179 | $3,975 | $4,352 | $4,468 | $3,433 | $2,730 |
| Enterprise value | $33,040 | $41,866 | $33,528 | $36,933 | $37,313 | $26,926 | $26,341 | $38,309 | $35,667 | $25,316 | $40,301 | – | – | – | – | – | – | – | – | – | – | – | – | $14,317 | $15,906 | $42,727 | $25,937 | $21,307 | $22,202 | $17,809 | $18,514 | $9,559 | $7,933 | $6,225 | $5,195 | $3,137 | $4,884 | $4,002 | $2,890 | $2,400 | $2,072 |
| P/E (TTM) at period end | 10.23× | 12.33× | 7.97× | 8.87× | 5.02× | 8.76× | 8.17× | 7.17× | 14.25× | 9.93× | 10.65× | – | – | – | – | – | – | – | – | – | – | – | – | – | 23.70× | 11.30× | 7.64× | 7.49× | 7.18× | 6.35× | 7.09× | 5.64× | 5.71× | 5.74× | 5.87× | 2.95× | 4.80× | 5.33× | 6.94× | 6.65× | 5.58× |
| P/S (TTM) at period end | 0.47× | 0.64× | 0.48× | 0.44× | 0.52× | 0.44× | 0.44× | 0.65× | 0.69× | 0.51× | 0.94× | – | – | – | – | – | – | – | – | – | – | – | – | 0.32× | 0.33× | 0.85× | 0.63× | 0.56× | 0.63× | 0.43× | 0.55× | 0.36× | 0.33× | 0.31× | 0.31× | 0.16× | 0.33× | 0.44× | 0.55× | 0.48× | 0.42× |
| P/B at period end | – | – | – | – | – | – | – | – | – | – | 1.75× | – | – | – | – | – | – | – | – | – | – | – | – | 0.49× | 1.06× | 2.94× | 1.46× | 1.30× | 1.39× | 1.22× | 1.46× | 0.91× | 0.79× | 0.67× | 0.61× | 0.34× | 0.73× | 0.96× | 0.89× | 0.78× | 0.69× |
| EV / EBITDA (TTM) | 8.08× | 9.01× | 7.79× | 6.92× | 6.07× | 6.36× | 5.70× | 8.79× | 9.58× | 6.52× | 5.05× | – | – | – | – | – | – | – | – | – | – | – | – | 12.93× | 5.66× | 8.11× | 5.18× | 4.46× | 4.88× | 3.55× | 3.93× | 2.69× | 2.91× | 3.00× | 2.83× | 1.82× | 2.92× | – | – | – | – |
| EV / Sales (TTM) | 0.60× | 0.78× | 0.62× | 0.59× | 0.59× | 0.48× | 0.45× | 0.66× | 0.69× | 0.52× | 0.78× | – | – | – | – | – | – | – | – | – | – | – | – | 0.25× | 0.35× | 0.87× | 0.61× | 0.54× | 0.63× | 0.46× | 0.59× | 0.38× | 0.39× | 0.38× | 0.36× | 0.24× | 0.41× | 0.41× | 0.36× | 0.34× | 0.32× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | – | – | – | – | – | – | – | – | – | – | 16.4% | 18.8% | 18.8% | (56.4%) | 18.3% | 21.7% | 18.9% | 21.4% | 18.9% | 16.2% | 6.5% | 9.3% | 6.7% | (2.5%) | 4.5% | 26.0% | 19.1% | 17.4% | 19.3% | 19.2% | 20.6% | 16.1% | 13.8% | 11.7% | 10.4% | 11.6% | 15.2% | 18.0% | 12.8% | 11.8% | 12.3% |
| Return on invested capital | 44.0% | 51.1% | 53.7% | 53.9% | 163.4% | 1174.1% | – | 2104.9% | – | – | 20.0% | 10.2% | 7.4% | (27.7%) | 12.4% | 17.6% | 19.0% | 17.8% | 19.5% | 21.0% | 8.3% | 11.0% | 8.2% | (2.7%) | 8.4% | 19.7% | 15.4% | 15.2% | 13.7% | 17.1% | 17.4% | 14.5% | 11.8% | 10.8% | 10.1% | 11.1% | 13.7% | 19.5% | 18.7% | 15.4% | 14.7% |
| Dividend yield | 4.2% | 3.1% | 4.0% | 3.7% | 2.9% | 4.0% | 3.8% | 2.4% | 2.5% | 3.5% | 2.6% | – | – | – | – | – | – | – | – | – | – | – | – | 4.5% | 4.2% | 1.5% | 2.4% | 2.8% | 2.4% | 2.7% | 2.1% | 3.1% | 3.4% | 3.6% | 2.7% | 4.7% | 2.1% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 0.77× | 0.72× | 0.73× | 0.75× | 0.76× | 0.79× | 0.80× | 0.85× | 1.00× | 0.98× | 1.23× | 1.15× | 1.11× | 1.09× | 1.01× | 1.10× | 1.22× | 0.98× | 1.21× | 1.35× | 1.38× | 1.50× | 1.54× | 1.48× | 1.53× | 1.53× | 1.51× | 1.37× | 1.87× | 1.69× | 1.48× | 1.52× | 1.49× | 1.51× | 1.65× | 1.47× | 1.53× | 1.72× | 2.01× | 2.51× | 2.43× |
| Debt / equity | (27.94×) | (7.31×) | (8.87×) | (3.64×) | (4.56×) | (2.73×) | (4.24×) | (9.37×) | (2.29×) | (1.75×) | 0.32× | 0.68× | 0.83× | 1.27× | 0.79× | 0.55× | 0.39× | 0.46× | 0.21× | 0.14× | 0.14× | 0.19× | 0.20× | 0.22× | 0.39× | 0.35× | 0.27× | 0.20× | 0.27× | 0.35× | 0.33× | 0.30× | 0.34× | 0.24× | 0.19× | 0.32× | 0.33× | 0.13× | 0.21× | 0.08× | 0.09× |
| Effective tax rate | 5.2% | 15.4% | (11.1%) | 27.6% | 13.6% | 12.3% | (24.9%) | (76.8%) | 22.9% | 29.1% | (5.3%) | 24.3% | 19.5% | (6.0%) | 21.2% | 20.2% | 18.6% | 20.5% | 20.8% | 13.8% | 32.3% | 16.7% | 12.1% | 12.3% | 11.1% | 23.0% | 26.0% | 27.5% | 29.5% | 30.0% | 33.0% | 34.0% | 34.0% | 33.5% | 33.0% | 30.0% | 28.0% | 28.5% | 33.1% | 33.8% | 35.5% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 953 | 989 | 1,000 | 1,050 | 1,220 | 1,420 | 1,524 | 1,634 | 1,702 | 1,743 | 1,836 | 1,912 | 1,950 | 1,974 | 2,128 | 2,372 | 2,437 | 2,567 | 2,716 | 2,852 | 2,909 | 3,055 | 3,063 | 2,499 | 1,974 | 2,077 | 2,105 | 2,144 | 2,114 | 2,104 | 2,104 | 2,083 | 2,024 | 2,007 | 1,987 | 1,895 | 1,884 | 1,943 | 2,012 | 1,985 | 2,038 |
| 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 | $59,162 | $55,295 | $53,559 | $53,718 | $62,910 | $63,460 | $56,638 | $58,756 | $58,472 | $52,056 | $48,238 | $51,463 | $56,651 | $55,273 | $120,357 | $127,245 | $126,033 | $114,552 | $118,364 | $104,286 | $91,658 | $86,696 | $79,905 | $73,061 | $56,588 | $45,226 | $48,870 | $42,370 | $39,419 | $35,465 | $38,420 | $31,519 | $24,991 | $20,317 | $16,410 | $14,494 | $13,233 | $11,899 | $9,831 | $8,090 | $7,102 | $6,505 |
| Cost of revenue | ($47,404) | ($43,903) | ($41,741) | ($42,210) | ($50,647) | ($50,053) | ($46,217) | ($47,586) | ($47,803) | ($42,478) | ($39,240) | ($41,524) | ($56,469) | ($55,632) | ($59,468) | ($65,167) | ($65,064) | ($56,503) | ($69,342) | ($63,435) | ($69,427) | ($66,440) | ($60,811) | ($53,858) | ($41,579) | ($33,259) | ($34,813) | ($29,720) | ($27,790) | ($24,524) | ($25,499) | ($20,014) | ($15,490) | ($12,123) | ($9,158) | ($7,234) | ($6,427) | ($5,629) | ($4,359) | ($3,443) | ($3,032) | ($2,867) |
| Gross profit | $11,758 | $11,392 | $11,818 | $11,508 | $12,263 | $13,407 | $10,421 | $11,170 | $10,669 | $9,578 | $8,998 | $9,939 | $182 | ($359) | $60,889 | $62,078 | $60,969 | $58,049 | $49,022 | $40,851 | $22,231 | $20,256 | $19,094 | $19,203 | $15,009 | $11,967 | $14,057 | $12,650 | $11,629 | $10,941 | $12,921 | $11,505 | $9,501 | $8,194 | $7,252 | $7,260 | $6,806 | $6,270 | $5,472 | $4,647 | $4,070 | $3,638 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | ($1,611) | ($1,602) | ($1,640) | ($1,578) | ($1,653) | ($1,848) | ($1,477) | ($1,499) | ($1,404) | ($1,190) | ($1,209) | ($1,191) | ($1,298) | ($1,209) | ($3,399) | ($3,254) | ($2,959) | ($2,819) | ($3,543) | ($3,611) | ($3,591) | ($3,490) | ($3,563) | ($3,652) | ($3,312) | ($2,724) | ($2,627) | ($2,440) | ($2,380) | ($2,191) | ($2,718) | ($2,302) | ($2,027) | ($1,761) | ($1,620) | – | – | – | – | – | – | – |
| Selling, general and administrative | ($5,985) | ($5,821) | ($5,658) | ($5,357) | ($5,264) | ($5,727) | ($4,901) | ($5,368) | ($5,099) | ($4,532) | ($3,833) | ($4,719) | ($5,361) | ($5,428) | ($13,500) | ($13,577) | ($12,822) | ($11,648) | ($13,326) | ($12,430) | ($11,266) | ($11,184) | ($10,496) | ($11,012) | ($9,033) | ($7,186) | ($7,217) | ($6,522) | ($5,850) | ($5,345) | ($6,477) | ($5,635) | ($4,925) | ($4,554) | ($4,228) | ($5,426) | ($5,078) | ($4,596) | ($3,957) | ($3,343) | ($2,969) | ($2,581) |
| Total operating expenses | ($8,536) | ($8,218) | ($8,000) | ($8,052) | ($7,704) | ($8,048) | ($6,979) | ($7,293) | ($6,838) | ($6,210) | ($5,449) | ($6,019) | $4,074 | $3,875 | ($71,946) | ($52,401) | ($49,490) | ($47,913) | ($38,549) | ($32,132) | ($15,671) | ($16,783) | ($14,867) | ($16,307) | ($16,021) | ($10,528) | ($10,032) | ($8,962) | ($8,230) | ($7,536) | ($9,195) | ($7,937) | ($6,952) | ($6,315) | ($5,848) | ($6,050) | ($5,644) | ($5,058) | ($4,330) | ($3,685) | ($3,290) | ($2,880) |
| Total costs and expenses | ($55,940) | ($52,121) | ($49,741) | ($50,262) | ($58,351) | ($58,101) | ($53,196) | ($54,879) | ($54,641) | ($48,688) | ($44,689) | ($47,543) | ($52,395) | ($51,757) | ($131,414) | ($117,568) | ($114,554) | ($104,416) | ($107,891) | ($95,567) | ($85,098) | ($83,223) | ($75,678) | ($70,165) | ($57,600) | ($43,787) | ($44,845) | ($38,682) | ($36,020) | ($32,060) | ($34,694) | ($27,951) | ($22,442) | ($18,438) | ($15,006) | ($13,284) | ($12,071) | ($10,687) | ($8,689) | ($7,128) | ($6,322) | ($5,747) |
| Operating income | $3,222 | $3,174 | $3,818 | $3,456 | $4,559 | $5,359 | $3,442 | $3,877 | $3,831 | $3,368 | $3,549 | $3,920 | $4,256 | $3,516 | ($11,057) | $9,677 | $11,479 | $10,136 | $10,473 | $8,719 | $6,560 | $3,473 | $4,227 | $2,896 | ($1,012) | $1,439 | $4,025 | $3,688 | $3,399 | $3,405 | $3,726 | $3,568 | $2,549 | $1,879 | $1,404 | $1,210 | $1,162 | $1,212 | $1,142 | $962 | $780 | $758 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $4,152 | $4,090 | $4,648 | $4,306 | $5,339 | $6,144 | $4,231 | $4,621 | $4,359 | $3,722 | $3,881 | $7,981 | $8,590 | $8,127 | ($5,962) | $14,661 | $16,299 | $14,916 | $13,874 | $11,424 | $8,913 | $5,817 | $6,622 | $5,423 | $1,107 | $2,808 | $5,266 | $5,004 | $4,776 | $4,549 | $5,023 | $4,707 | $3,555 | $2,725 | $2,077 | $1,834 | $1,728 | $1,674 | – | – | – | – |
| Interest income | – | $89 | $78 | $67 | $46 | $31 | $40 | $80 | $116 | $66 | $24 | $75 | $72 | $76 | $155 | $167 | $111 | $119 | $401 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($394) | ($430) | ($452) | ($548) | ($359) | ($254) | ($239) | ($242) | ($312) | ($309) | ($273) | ($567) | ($621) | ($738) | ($831) | ($522) | ($417) | ($597) | ($467) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $2,796 | $2,668 | $3,279 | $2,937 | $4,324 | $7,568 | $3,211 | $2,523 | $3,013 | $3,276 | $3,761 | $3,532 | $3,863 | $3,055 | ($11,933) | $8,982 | $10,974 | $9,415 | $10,473 | $9,177 | $7,191 | $3,543 | $4,196 | $2,888 | ($1,052) | $702 | $4,625 | $4,194 | $3,694 | $3,568 | $3,694 | $3,632 | $2,423 | $1,783 | $1,325 | $1,127 | $1,056 | $1,151 | $1,142 | $962 | $780 | $758 |
| Income tax expense | ($345) | ($139) | ($504) | $326 | ($1,192) | ($1,027) | ($396) | $629 | $2,314 | ($750) | ($1,095) | $186 | ($939) | ($595) | ($717) | ($1,908) | ($2,213) | ($1,755) | ($2,144) | ($1,913) | ($993) | ($1,145) | ($699) | ($349) | $129 | ($78) | ($1,064) | ($1,090) | ($1,016) | ($1,053) | ($1,108) | ($1,199) | ($824) | ($606) | ($444) | ($372) | ($317) | ($322) | ($326) | ($318) | ($264) | ($269) |
| Net income | $2,451 | $2,529 | $2,775 | $3,263 | $3,132 | $6,541 | $2,815 | $3,152 | $5,327 | $2,526 | $2,496 | $4,554 | $5,013 | $5,113 | ($12,650) | $7,074 | $8,761 | $7,660 | $8,329 | $7,264 | $6,198 | $2,398 | $3,497 | $2,539 | ($923) | $624 | $3,697 | $3,491 | $2,945 | $3,119 | $2,586 | $2,433 | $1,599 | $1,177 | $881 | $755 | $739 | $829 | $816 | $644 | $516 | $489 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $2.62 | $2.65 | $2.81 | $3.26 | $2.98 | $5.36 | $1.98 | $2.07 | $3.26 | $1.48 | $1.43 | $2.48 | $2.62 | $2.62 | ($6.41) | $3.32 | $3.69 | $3.14 | $3.25 | $2.68 | $2.18 | $0.82 | $1.15 | $0.83 | ($0.37) | $0.32 | $1.80 | $1.67 | $1.39 | $1.48 | $1.23 | $1.16 | $0.77 | $0.59 | $0.44 | $0.38 | $0.39 | $0.44 | $0.42 | $0.32 | $0.26 | $0.24 |
| Basic EPS (GAAP) | $2.65 | $2.67 | $2.83 | $3.29 | $3.02 | $5.41 | $1.99 | $2.08 | $3.30 | $1.50 | $1.44 | $2.51 | $2.66 | $2.64 | ($6.41) | $3.38 | $3.78 | $3.21 | $3.35 | $2.76 | $2.23 | $0.83 | $1.16 | $0.83 | ($0.37) | $0.32 | $1.87 | $1.73 | $1.43 | $1.53 | $1.27 | $1.16 | $0.77 | $0.59 | $0.44 | $0.38 | $0.39 | $0.44 | $0.42 | $0.32 | $0.26 | $0.24 |
| Basic shares outstanding | 926 | 946 | 979 | 992 | 1,038 | 1,208 | 1,413 | 1,515 | 1,615 | 1,688 | 1,730 | 1,814 | 1,882 | 1,934 | 1,974 | 2,094 | 2,319 | 2,388 | 2,483 | 2,630 | 2,782 | 2,879 | 3,024 | 3,047 | 2,499 | 1,936 | 1,979 | 2,018 | 2,068 | 2,052 | 2,104 | 2,104 | 2,083 | 2,024 | 2,007 | 1,987 | 1,895 | 1,884 | 1,943 | 2,012 | 1,985 | 2,038 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 19.9% | 20.6% | 22.1% | 21.4% | 19.5% | 21.1% | 18.4% | 19.0% | 18.2% | 18.4% | 18.7% | 19.3% | 0.3% | (0.6%) | 50.6% | 48.8% | 48.4% | 50.7% | 41.4% | 39.2% | 24.3% | 23.4% | 23.9% | 26.3% | 26.5% | 26.5% | 28.8% | 29.9% | 29.5% | 30.9% | 33.6% | 36.5% | 38.0% | 40.3% | 44.2% | 50.1% | 51.4% | 52.7% | 55.7% | 57.4% | 57.3% | 55.9% |
| Operating margin | 5.4% | 5.7% | 7.1% | 6.4% | 7.2% | 8.4% | 6.1% | 6.6% | 6.6% | 6.5% | 7.4% | 7.6% | 7.5% | 6.4% | (9.2%) | 7.6% | 9.1% | 8.8% | 8.8% | 8.4% | 7.2% | 4.0% | 5.3% | 4.0% | (1.8%) | 3.2% | 8.2% | 8.7% | 8.6% | 9.6% | 9.7% | 11.3% | 10.2% | 9.2% | 8.6% | 8.3% | 8.8% | 10.2% | 11.6% | 11.9% | 11.0% | 11.7% |
| Net margin | 4.1% | 4.6% | 5.2% | 6.1% | 5.0% | 10.3% | 5.0% | 5.4% | 9.1% | 4.9% | 5.2% | 8.8% | 8.8% | 9.3% | (10.5%) | 5.6% | 7.0% | 6.7% | 7.0% | 7.0% | 6.8% | 2.8% | 4.4% | 3.5% | (1.6%) | 1.4% | 7.6% | 8.2% | 7.5% | 8.8% | 6.7% | 7.7% | 6.4% | 5.8% | 5.4% | 5.2% | 5.6% | 7.0% | 8.3% | 8.0% | 7.3% | 7.5% |