
| 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 | $96,792 | $88,622 | $71,347 | $81,920 | $87,055 | $75,317 | $91,684 | $90,729 | $131,179 | $124,217 | $106,931 | $97,456 | $76,742 | $63,635 | $61,198 | $51,136 | $40,556 | $31,196 | $158,794 | $179,106 | $154,670 | $125,072 | $110,364 | $85,559 | $99,999 | $99,985 | $54,992 | $130,046 | $109,505 | $92,748 | $75,896 | $49,860 | $48,841 | $69,770 | $74,502 | $47,707 | $39,604 | $26,812 | $20,149 | $17,025 | $10,496 |
| Enterprise value | $118,077 | $110,471 | $93,944 | $104,620 | $110,555 | $99,929 | $117,706 | $115,144 | $143,823 | $133,532 | $117,474 | $108,824 | $88,083 | $74,615 | $71,620 | $61,019 | $50,648 | $30,754 | $164,998 | $198,228 | $176,687 | $147,072 | $135,886 | $112,680 | $125,661 | $128,170 | $64,360 | $140,627 | $121,326 | $107,748 | $90,584 | $66,148 | $66,815 | $86,194 | $91,276 | $66,303 | $55,911 | $43,086 | $26,338 | $23,864 | $18,349 |
| P/E (TTM) at period end | 13.97× | 7.89× | 8.79× | 14.24× | 35.33× | 16.89× | – | 13.03× | 12.83× | 8.72× | 20.40× | 19.22× | 16.92× | 15.22× | 18.05× | 13.09× | 12.69× | 6.34× | 16.23× | 14.90× | 19.49× | 13.28× | 11.99× | 7.71× | 11.68× | 11.75× | 7.17× | 24.21× | 17.35× | 14.71× | 13.93× | 10.55× | 15.80× | 14.13× | 18.97× | 13.48× | 13.44× | 11.47× | 10.94× | 11.52× | 8.36× |
| P/S (TTM) at period end | 4.16× | 3.69× | 2.91× | 3.26× | 3.35× | 2.88× | 3.65× | 3.58× | 5.13× | 4.83× | 4.20× | 3.97× | 3.14× | 2.58× | 2.57× | 2.10× | 1.72× | 1.61× | 8.51× | 11.80× | 2.43× | 1.96× | 1.83× | 1.39× | 1.57× | 1.78× | 0.89× | 2.25× | 1.95× | 1.70× | 1.43× | 0.93× | 0.96× | 1.18× | 1.32× | 0.93× | 0.88× | 0.84× | 0.73× | 0.82× | 0.86× |
| P/B at period end | – | – | – | – | – | 26.53× | 14.74× | 6.14× | 8.53× | 9.73× | 37.13× | 32.33× | 18.63× | 20.09× | 16.63× | 9.85× | 9.97× | 11.03× | 8.56× | 4.52× | 4.33× | 4.07× | 4.40× | 4.39× | 5.10× | 6.66× | 3.59× | 8.03× | 7.34× | 6.52× | 5.43× | 3.90× | 4.20× | 5.55× | 5.95× | 3.99× | 4.14× | 3.49× | 2.95× | 3.01× | 2.22× |
| EV / EBITDA (TTM) | 11.62× | 9.58× | 7.95× | 8.61× | 9.37× | 8.98× | 11.15× | 12.33× | 14.67× | 14.89× | 13.68× | 13.90× | 10.62× | 9.98× | 11.33× | 9.38× | 8.80× | 6.03× | 35.83× | 31.36× | 13.07× | 8.76× | 7.90× | 6.34× | 6.97× | 7.76× | 4.24× | 9.35× | 8.19× | 8.01× | 7.43× | 5.62× | 7.26× | 7.43× | 9.02× | 7.12× | 7.00× | – | – | – | – |
| EV / Sales (TTM) | 5.07× | 4.60× | 3.84× | 4.17× | 4.25× | 3.82× | 4.69× | 4.54× | 5.62× | 5.19× | 4.62× | 4.44× | 3.60× | 3.03× | 3.01× | 2.50× | 2.15× | 1.59× | 8.84× | 13.06× | 2.77× | 2.30× | 2.26× | 1.83× | 1.97× | 2.28× | 1.04× | 2.43× | 2.16× | 1.98× | 1.70× | 1.23× | 1.32× | 1.46× | 1.62× | 1.30× | 1.25× | 1.36× | 0.95× | 1.15× | 1.51× |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | – | – | – | – | – | 157.1% | (20.9%) | 47.1% | 66.5% | 111.5% | 182.0% | 168.2% | 110.1% | 131.9% | 92.1% | 75.2% | 78.5% | 173.9% | 52.7% | 30.3% | 22.2% | 30.7% | 36.7% | 57.0% | 43.6% | 56.7% | 50.1% | 33.2% | 42.3% | 44.3% | 39.0% | 37.0% | 26.6% | 39.3% | 31.4% | 29.6% | 30.8% | 30.4% | 27.0% | 26.1% | 26.5% |
| Return on invested capital | 41.2% | 47.3% | 45.1% | 49.6% | 34.2% | 25.6% | – | 17.3% | 34.2% | 25.9% | 40.4% | 34.6% | 34.2% | 33.1% | 26.2% | 28.2% | 25.4% | 132.0% | 11.5% | 5.1% | 14.3% | 19.5% | 20.3% | 22.8% | 21.5% | 20.9% | 33.1% | 29.5% | 29.2% | 23.8% | 21.5% | 18.7% | 14.8% | 19.9% | 16.6% | 14.6% | 15.3% | 11.0% | 17.0% | 15.2% | 11.1% |
| Dividend yield | 7.2% | 7.7% | 9.5% | 8.1% | 7.4% | 8.4% | 6.6% | 6.0% | 3.7% | 3.6% | 3.9% | 4.0% | 4.7% | 5.3% | 5.3% | 5.8% | 6.6% | 14.2% | 4.2% | 3.8% | 4.0% | 4.5% | 4.8% | 5.9% | 4.8% | 4.5% | 7.9% | 3.1% | 3.5% | 3.7% | 3.9% | 5.0% | 4.7% | 2.9% | 2.3% | 2.8% | 2.8% | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 0.65× | 0.51× | 0.49× | 0.84× | 0.71× | 0.79× | 0.59× | 0.20× | 0.64× | 0.98× | 0.69× | 0.90× | 0.93× | 0.76× | 0.93× | 0.87× | 0.72× | 1.55× | 1.22× | 1.03× | 0.99× | 1.10× | 1.00× | 0.91× | 0.84× | 0.64× | 1.16× | 1.24× | 1.16× | 1.01× | 1.00× | 1.02× | 0.89× | 1.05× | 1.00× | 1.02× | 1.01× | 1.02× | 1.27× | 1.32× | 1.49× |
| Debt / equity | (7.34×) | (11.14×) | (7.41×) | (6.72×) | (17.46×) | 10.38× | 4.51× | 0.88× | 0.90× | 1.09× | 4.46× | 4.87× | 3.52× | 4.38× | 3.72× | 2.35× | 2.94× | 2.47× | 0.60× | 0.47× | 0.68× | 0.75× | 0.98× | 1.20× | 1.13× | 1.94× | 0.95× | 0.91× | 0.95× | 1.07× | 1.13× | 1.29× | 1.56× | 1.39× | 1.35× | 1.57× | 1.72× | 2.14× | 0.93× | 1.22× | 1.69× |
| Effective tax rate | 26.0% | 17.5% | 25.6% | 22.0% | 35.3% | 35.4% | 269.5% | 25.4% | (4.1%) | 34.8% | 35.1% | 34.8% | 34.7% | 35.4% | 39.2% | 31.7% | 34.2% | 35.5% | 33.1% | 33.1% | 30.1% | 32.4% | 34.9% | 35.5% | 37.9% | 39.0% | 39.5% | 40.9% | 40.5% | 41.0% | 41.4% | 42.5% | 42.4% | 42.6% | 43.7% | 43.9% | 41.8% | 41.6% | 45.0% | 47.4% | 46.1% |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 1,683 | 1,718 | 1,777 | 1,804 | 1,845 | 1,859 | 1,869 | 1,888 | 1,921 | 1,952 | 1,961 | 1,978 | 1,999 | 2,024 | 2,064 | 2,079 | 2,071 | 2,084 | 2,116 | 2,105 | 2,090 | 2,063 | 2,038 | 2,129 | 2,210 | 2,282 | 2,406 | 2,442 | 2,442 | 2,462 | 2,532 | 2,601 | 2,634 | 2,744 | 2,805 | 2,787 | 2,806 | 3,201 | 2,834 | 2,842 | 2,852 |
| 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 | $23,457 | $23,279 | $24,018 | $24,483 | $25,096 | $26,013 | $26,153 | $25,110 | $25,364 | $25,576 | $25,744 | $25,434 | $24,522 | $24,466 | $24,618 | $23,800 | $24,363 | $23,556 | $19,356 | $18,664 | $15,173 | $63,741 | $63,963 | $60,192 | $61,707 | $63,670 | $56,233 | $61,751 | $57,813 | $56,114 | $54,553 | $53,139 | $53,776 | $50,621 | $59,131 | $56,458 | $51,169 | $44,759 | $31,742 | $27,695 | $20,681 | $12,149 |
| Cost of revenue | ($5,675) | ($5,597) | ($6,077) | ($6,218) | ($6,442) | ($7,119) | ($7,818) | ($7,085) | ($7,373) | ($7,543) | ($7,746) | ($7,740) | ($7,785) | ($7,206) | ($7,937) | ($7,680) | ($7,704) | ($7,990) | ($8,270) | ($7,827) | ($7,387) | ($43,853) | ($33,853) | ($31,465) | ($32,394) | ($33,900) | ($29,687) | ($28,441) | ($25,714) | ($25,574) | ($25,463) | ($25,605) | ($26,629) | ($25,152) | ($24,540) | ($24,115) | ($23,063) | ($20,635) | ($17,960) | ($15,976) | ($10,384) | ($5,894) |
| Gross profit | $14,769 | $14,542 | $14,367 | $14,284 | $14,246 | $13,992 | $13,023 | $12,711 | $12,254 | $11,963 | $11,572 | $11,114 | $10,160 | $10,457 | $9,563 | $8,939 | $9,188 | $8,834 | $7,687 | $7,385 | $7,786 | $19,888 | $30,110 | $28,727 | $29,313 | $29,770 | $26,546 | $33,310 | $32,099 | $30,540 | $29,090 | $27,534 | $27,147 | $25,469 | $34,591 | $32,343 | $28,106 | $24,124 | $13,782 | $11,719 | $10,297 | $6,255 |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | ($195) | ($208) | ($220) | ($162) | ($145) | ($131) | ($168) | ($252) | ($241) | ($203) | ($186) | ($167) | ($153) | ($136) | ($128) | ($144) | ($177) | ($232) | – | – | – | ($809) | ($756) | ($680) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($2,513) | ($2,507) | ($2,737) | ($2,737) | ($2,327) | ($2,432) | ($2,150) | ($2,226) | ($2,756) | ($2,338) | ($2,662) | ($2,708) | ($2,539) | ($2,340) | ($2,301) | ($2,643) | ($2,735) | ($2,843) | ($2,753) | ($2,784) | ($3,113) | ($7,664) | ($12,856) | ($11,782) | ($11,537) | ($12,461) | ($11,423) | ($18,118) | ($17,051) | ($15,720) | ($15,630) | ($15,337) | ($15,372) | ($16,263) | ($13,954) | ($13,830) | ($11,947) | ($10,393) | ($8,481) | ($7,004) | ($6,038) | ($3,240) |
| Total operating expenses | ($3,796) | ($4,643) | ($3,126) | ($2,737) | ($2,327) | ($2,432) | ($2,150) | ($2,385) | ($3,139) | ($2,370) | ($2,811) | ($2,753) | ($2,540) | ($2,373) | ($2,310) | ($2,871) | ($2,960) | ($3,372) | ($2,805) | ($3,012) | ($3,268) | ($8,048) | ($14,930) | ($12,968) | ($12,865) | ($14,068) | ($11,740) | ($19,820) | ($18,741) | ($17,420) | ($17,321) | ($17,008) | ($17,698) | ($17,882) | ($24,532) | ($23,721) | ($20,160) | ($17,335) | ($9,260) | ($7,708) | ($6,693) | ($3,664) |
| Total costs and expenses | ($12,484) | ($13,380) | ($12,777) | ($12,936) | ($13,177) | ($14,453) | ($15,280) | ($14,784) | ($16,249) | ($15,983) | ($16,983) | ($17,073) | ($16,902) | ($16,382) | ($17,365) | ($17,732) | ($18,135) | ($18,094) | ($14,474) | ($14,291) | ($10,655) | ($51,901) | ($48,783) | ($44,433) | ($45,259) | ($47,968) | ($41,427) | ($48,261) | ($44,455) | ($42,994) | ($42,784) | ($42,613) | ($44,327) | ($43,034) | ($49,072) | ($47,836) | ($43,223) | ($37,970) | ($27,220) | ($23,684) | ($17,077) | ($9,558) |
| Operating income | $10,973 | $9,899 | $11,241 | $11,547 | $11,919 | $11,560 | $10,873 | $10,326 | $9,115 | $9,593 | $8,761 | $8,361 | $7,620 | $8,084 | $7,253 | $6,068 | $6,228 | $5,462 | $4,882 | $4,373 | $4,518 | $11,840 | $15,180 | $15,759 | $16,448 | $15,702 | $14,806 | $13,490 | $13,358 | $13,120 | $11,769 | $10,526 | $9,449 | $7,587 | $10,059 | $8,622 | $7,946 | $6,789 | $4,522 | $4,011 | $3,604 | $2,591 |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $11,209 | $10,165 | $11,527 | $11,819 | $12,145 | $11,804 | $11,130 | $10,552 | $9,342 | $9,802 | $8,965 | $8,586 | $7,828 | $8,296 | $7,478 | $6,321 | $6,504 | $5,753 | $5,097 | $4,605 | $6,322 | $13,515 | $16,787 | $17,199 | $17,779 | $18,039 | $16,523 | $15,192 | $15,048 | $14,820 | $13,460 | $12,197 | $11,775 | $9,206 | $11,601 | $10,119 | $9,313 | $7,983 | – | – | – | – |
| Interest income | – | $98 | $87 | $160 | $70 | $26 | $14 | $42 | $32 | $31 | $13 | $4 | $2 | $4 | $2 | $4 | $3 | $4 | $70 | $270 | $404 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,193) | ($1,177) | ($1,124) | ($1,149) | ($1,128) | ($1,188) | ($1,223) | ($1,322) | ($697) | ($736) | ($754) | ($808) | ($857) | ($1,053) | ($1,128) | ($1,220) | ($1,136) | ($1,189) | ($237) | ($475) | ($629) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $10,376 | $9,389 | $13,658 | $10,928 | $7,389 | $3,824 | $6,890 | $766 | $9,341 | $9,828 | $21,852 | $8,078 | $7,774 | $6,942 | $6,477 | $5,582 | $5,723 | $4,877 | $4,789 | $4,678 | $4,753 | $11,319 | $14,004 | $14,609 | $17,945 | $14,284 | $13,960 | $12,695 | $9,087 | $10,611 | $10,683 | $9,347 | $8,216 | $6,196 | $8,608 | $6,971 | $6,311 | $5,058 | $4,000 | $3,348 | $2,811 | $2,329 |
| Income tax expense | ($2,403) | ($2,442) | ($2,394) | ($2,798) | ($1,625) | ($1,349) | ($2,436) | ($2,064) | ($2,374) | $399 | ($7,608) | ($2,835) | ($2,704) | ($2,407) | ($2,294) | ($2,189) | ($1,816) | ($1,669) | ($1,699) | ($1,547) | ($1,571) | ($3,409) | ($4,540) | ($5,097) | ($6,368) | ($5,407) | ($5,450) | ($5,020) | ($3,715) | ($4,301) | ($4,380) | ($3,869) | ($3,491) | ($2,628) | ($3,669) | ($3,044) | ($2,771) | ($2,112) | ($1,663) | ($1,506) | ($1,333) | ($1,074) |
| Net income | $7,973 | $6,947 | $11,264 | $8,130 | $5,764 | $2,475 | $4,467 | ($1,293) | $6,963 | $10,222 | $14,239 | $5,241 | $5,070 | $4,535 | $4,180 | $3,390 | $3,905 | $3,206 | $4,930 | $9,786 | $12,022 | $7,937 | $9,416 | $9,204 | $11,102 | $8,560 | $8,510 | $7,675 | $5,372 | $6,310 | $6,303 | $5,450 | $4,725 | $3,091 | $4,939 | $3,927 | $3,540 | $2,946 | $2,337 | $1,842 | $1,478 | $1,255 |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $4.74 | $4.12 | $6.54 | $4.57 | $3.19 | $1.34 | $2.40 | ($0.70) | $3.68 | $5.31 | $7.28 | $2.67 | $2.56 | $2.26 | $2.06 | $1.64 | $1.87 | $1.54 | $2.36 | $4.62 | $5.71 | $4.99 | $4.56 | $4.52 | $5.21 | $3.87 | $3.73 | $3.19 | $2.20 | $2.58 | $2.56 | $2.16 | $1.82 | $1.17 | $1.80 | $1.40 | $1.27 | $1.05 | $0.73 | $0.65 | $0.52 | $0.44 |
| Basic EPS (GAAP) | $4.74 | $4.12 | $6.54 | $4.57 | $3.19 | $1.34 | $2.40 | ($0.70) | $3.69 | $5.31 | $7.28 | $2.67 | $2.56 | $2.26 | $2.06 | $1.64 | $1.87 | $1.55 | $2.37 | $4.64 | $5.76 | $5.04 | $4.60 | $4.54 | $5.26 | $3.92 | $3.85 | $3.21 | $2.21 | $2.61 | $2.56 | $2.16 | $1.82 | $1.17 | $1.82 | $1.41 | $1.28 | $1.06 | $0.74 | $0.65 | $0.52 | $0.44 |
| Basic shares outstanding | 1,675 | 1,683 | 1,718 | 1,777 | 1,804 | 1,845 | 1,858 | 1,869 | 1,887 | 1,921 | 1,952 | 1,961 | 1,978 | 1,999 | 2,024 | 2,064 | 2,077 | 2,066 | 2,075 | 2,101 | 2,087 | 2,070 | 2,047 | 2,028 | 2,111 | 2,181 | 2,272 | 2,391 | 2,431 | 2,420 | 2,462 | 2,523 | 2,601 | 2,634 | 2,714 | 2,785 | 2,766 | 2,779 | 3,158 | 2,834 | 2,842 | 2,852 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | 63.0% | 62.5% | 59.8% | 58.3% | 56.8% | 53.8% | 49.8% | 50.6% | 48.3% | 46.8% | 45.0% | 43.7% | 41.4% | 42.7% | 38.8% | 37.6% | 37.7% | 37.5% | 39.7% | 39.6% | 51.3% | 31.2% | 47.1% | 47.7% | 47.5% | 46.8% | 47.2% | 53.9% | 55.5% | 54.4% | 53.3% | 51.8% | 50.5% | 50.3% | 58.5% | 57.3% | 54.9% | 53.9% | 43.4% | 42.3% | 49.8% | 51.5% |
| Operating margin | 46.8% | 42.5% | 46.8% | 47.2% | 47.5% | 44.4% | 41.6% | 41.1% | 35.9% | 37.5% | 34.0% | 32.9% | 31.1% | 33.0% | 29.5% | 25.5% | 25.6% | 23.2% | 25.2% | 23.4% | 29.8% | 18.6% | 23.7% | 26.2% | 26.7% | 24.7% | 26.3% | 21.8% | 23.1% | 23.4% | 21.6% | 19.8% | 17.6% | 15.0% | 17.0% | 15.3% | 15.5% | 15.2% | 14.2% | 14.5% | 17.4% | 21.3% |
| Net margin | 34.0% | 29.8% | 46.9% | 33.2% | 23.0% | 9.5% | 17.1% | (5.1%) | 27.5% | 40.0% | 55.3% | 20.6% | 20.7% | 18.5% | 17.0% | 14.2% | 16.0% | 13.6% | 25.5% | 52.4% | 79.2% | 12.5% | 14.7% | 15.3% | 18.0% | 13.4% | 15.1% | 12.4% | 9.3% | 11.2% | 11.6% | 10.3% | 8.8% | 6.1% | 8.4% | 7.0% | 6.9% | 6.6% | 7.4% | 6.7% | 7.1% | 10.3% |