
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valuation | |||||||||||||||||||||||||||||||
| Market cap | $52,013 | $56,695 | $48,949 | $56,782 | $52,564 | $39,492 | $42,874 | $34,538 | $53,204 | $59,233 | $53,591 | $54,559 | $53,914 | $32,041 | $29,401 | $39,039 | $25,745 | $22,268 | $40,861 | $40,037 | $32,707 | $27,129 | $22,182 | $16,965 | $20,864 | $19,555 | $10,281 | $10,281 | $9,789 | $9,789 | $9,789 |
| Enterprise value | $46,845 | $50,444 | $41,331 | $49,876 | $43,038 | $34,201 | $39,515 | $31,241 | $55,134 | $60,082 | $56,729 | $56,819 | $56,035 | $22,168 | $29,570 | $53,443 | $30,344 | $594 | $42,198 | $44,749 | $38,819 | $29,272 | $25,968 | $19,572 | $17,427 | $19,380 | $14,166 | $13,853 | – | – | – |
| P/E (TTM) at period end | 16.39× | 13.42× | 35.47× | 11.14× | 7.90× | 7.61× | 7.49× | 6.93× | 13.62× | 79.29× | 10.28× | 8.82× | 16.61× | 26.66× | 4.78× | 15.34× | – | 7.22× | 9.78× | 6.36× | 6.94× | 9.84× | 10.01× | 10.57× | 44.11× | 20.52× | 16.66× | 7.65× | 8.14× | 11.48× | 14.00× |
| P/S (TTM) at period end | 0.67× | 0.80× | 0.73× | 0.83× | 0.77× | 0.58× | 0.62× | 0.51× | 0.85× | 0.97× | 0.87× | 0.85× | 0.79× | 0.47× | 0.42× | 0.75× | 0.63× | 0.44× | 0.87× | 0.83× | 0.73× | 0.70× | 0.63× | 0.52× | 0.68× | 0.64× | 0.42× | 0.39× | 6.90× | 7.88× | 8.32× |
| P/B at period end | 1.83× | 2.07× | 1.63× | 1.90× | 0.78× | 0.53× | 0.65× | 0.65× | 0.91× | 0.88× | 0.79× | 0.76× | 0.88× | 0.50× | 0.51× | 0.83× | 0.78× | 0.94× | 1.16× | 1.18× | 1.12× | 1.19× | 1.05× | 0.98× | 1.30× | 1.19× | 0.75× | 0.69× | – | – | – |
| EV / EBITDA (TTM) | 7.49× | 8.24× | 7.08× | 8.18× | 4.98× | 4.80× | 5.64× | 4.81× | 14.73× | 13.39× | 9.67× | 6.32× | 13.23× | 13.44× | 2.89× | 13.15× | – | 0.11× | 6.79× | – | 8.36× | 7.51× | 9.20× | 10.28× | 18.25× | 17.48× | 11.61× | 6.82× | – | – | – |
| EV / Sales (TTM) | 0.61× | 0.71× | 0.62× | 0.73× | 0.63× | 0.50× | 0.57× | 0.46× | 0.88× | 0.99× | 0.92× | 0.89× | 0.82× | 0.33× | 0.42× | 1.02× | 0.75× | 0.01× | 0.89× | 0.93× | 0.87× | 0.76× | 0.74× | 0.60× | 0.57× | 0.63× | 0.57× | 0.52× | – | – | – |
| Returns | |||||||||||||||||||||||||||||||
| Return on equity | 11.2% | 15.4% | 4.6% | 17.1% | 9.9% | 7.0% | 8.6% | 9.4% | 6.7% | 1.1% | 7.7% | 8.6% | 5.3% | 1.9% | 10.7% | 5.4% | (7.6%) | 13.0% | 11.9% | 18.6% | 16.2% | 12.1% | 10.5% | 9.2% | 2.9% | 5.8% | 4.5% | 9.0% | – | – | – |
| Return on invested capital | 16.7% | 18.0% | 14.9% | 17.8% | 14.5% | 7.4% | 8.9% | 9.6% | 5.4% | 4.8% | 5.2% | 7.6% | 4.4% | 1.8% | 9.3% | 3.9% | (5.3%) | 24.8% | 10.0% | 7.3% | 8.0% | 9.3% | 6.6% | 4.2% | 2.0% | 4.4% | 6.0% | 10.7% | – | – | – |
| Dividend yield | 2.9% | 2.7% | 3.2% | 2.8% | 3.1% | 4.2% | 3.8% | 4.9% | 3.2% | 2.9% | 3.1% | 2.7% | 2.1% | 2.5% | 2.7% | 2.0% | 2.4% | 2.7% | 1.3% | 1.1% | 1.2% | 1.3% | 0.8% | 0.9% | 0.7% | 0.8% | – | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||
| Current ratio | – | – | – | – | – | – | – | – | – | – | – | 1902.42× | 1863.68× | 680.21× | 1222.62× | 726.92× | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Debt / equity | – | – | – | – | – | – | – | – | – | – | – | – | – | – | 0.42× | 0.60× | 0.43× | 0.52× | 0.39× | 0.42× | 0.46× | 0.39× | 0.44× | 0.32× | 0.25× | 0.21× | 0.49× | 0.24× | – | – | – |
| Effective tax rate | 27.0% | 21.0% | 25.9% | 16.7% | 19.3% | 21.8% | 13.0% | 18.7% | (41.6%) | 16.2% | 28.1% | 28.1% | 16.3% | 8.9% | 30.4% | 29.8% | 45.6% | 31.2% | 29.1% | 26.3% | 28.5% | 27.8% | 24.7% | 34.9% | 43.0% | 35.3% | – | – | 28.0% | 34.3% | 54.7% |
| Share count | |||||||||||||||||||||||||||||||
| Diluted shares outstanding | 673 | 711 | 762 | 809 | 869 | 913 | 944 | 1,014 | 1,078 | 1,108 | 1,128 | 1,142 | 1,116 | 1,077 | 1,068 | 890 | 818 | 745 | 762 | 771 | 755 | 755 | 747 | 730 | 763 | 640 | 782 | 782 | 745 | 745 | 745 |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and gross profit | ||||||||||||||||||||||||||||||||
| Revenue | $79,403 | $77,084 | $70,986 | $66,905 | $68,770 | $68,696 | $67,842 | $69,620 | $67,941 | $62,308 | $60,787 | $61,343 | $63,974 | $68,199 | $68,150 | $70,241 | $52,247 | $40,645 | $50,982 | $47,152 | $48,254 | $44,629 | $38,701 | $35,091 | $32,476 | $30,583 | $30,649 | $24,748 | $26,525 | $1,418 | $1,243 | $1,177 |
| Cost of revenue | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | ($32,225) | ($33,358) | ($35,413) | ($32,903) | ($28,750) | ($26,357) | ($24,473) | ($23,189) | ($19,828) | – | – | – | – | – |
| Gross profit | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | $18,759 | $13,800 | $12,841 | $11,726 | $9,951 | $8,734 | $8,003 | $7,394 | $10,821 | – | – | – | – | – |
| Operating expenses | ||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($590) | ($560) | ($481) | ($828) | ($669) | ($670) | ($761) | ($901) | ($910) | ($1,129) | ($1,007) | ($1,417) | ($17,091) | ($16,602) | ($17,755) | ($17,730) | ($12,764) | ($8,574) | ($7,229) | ($7,128) | ($3,430) | ($3,217) | ($2,915) | ($2,707) | ($2,499) | ($2,459) | – | – | – | ($4,765) | ($1,728) | ($1,786) |
| Total operating expenses | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | ($13,698) | ($8,038) | ($8,673) | ($7,433) | ($6,388) | ($6,388) | ($6,597) | ($6,920) | ($9,629) | – | – | – | – | – |
| Total costs and expenses | ($72,839) | ($70,947) | ($64,990) | ($61,182) | ($62,792) | ($60,178) | ($60,915) | ($62,825) | ($61,634) | ($58,772) | ($56,506) | ($55,692) | ($55,170) | ($64,147) | ($66,708) | ($60,215) | ($48,335) | ($44,979) | ($45,921) | ($41,390) | ($44,086) | ($40,336) | ($35,138) | ($32,745) | ($31,070) | ($30,109) | ($29,457) | ($23,701) | ($24,550) | $706 | $163 | ($433) |
| Operating income | $6,564 | $6,137 | $5,996 | $5,723 | $5,978 | $8,518 | $6,927 | $6,795 | $6,307 | $3,536 | $4,281 | $5,651 | $8,804 | $4,052 | $1,442 | $10,026 | $3,912 | ($4,334) | $5,061 | $5,762 | $4,168 | $4,293 | $3,563 | $2,346 | $1,406 | $474 | $1,192 | $1,047 | $1,975 | $2,124 | $1,406 | $744 |
| Earnings | ||||||||||||||||||||||||||||||||
| EBITDA | $6,693 | $6,254 | $6,120 | $5,835 | $6,096 | $8,641 | $7,121 | $7,002 | $6,498 | $3,743 | $4,487 | $5,866 | $8,985 | $4,235 | $1,650 | $10,225 | $4,063 | ($4,183) | $5,211 | $6,219 | – | $4,645 | $3,897 | $2,824 | $1,904 | $955 | $1,109 | $1,220 | $2,031 | $2,088 | – | – |
| Interest income | – | – | – | – | – | – | – | – | $794 | $785 | $965 | $886 | $811 | $309 | $667 | $803 | $480 | $432 | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,091) | ($724) | ($738) | ($740) | ($655) | ($647) | ($632) | ($656) | ($827) | ($841) | ($874) | ($890) | ($871) | ($854) | ($871) | ($975) | ($1,550) | ($1,044) | ($1,051) | ($600) | ($900) | ($659) | ($408) | ($478) | ($403) | ($332) | – | – | – | $453 | – | – |
| Pre-tax income | $4,869 | $4,661 | $5,622 | $2,162 | $6,364 | $8,518 | $6,927 | $6,795 | $6,307 | $3,536 | $4,281 | $5,651 | $6,883 | $4,052 | $1,442 | $9,184 | $3,729 | ($4,615) | $5,061 | $5,762 | $4,168 | $4,293 | $3,563 | $2,346 | $1,406 | $474 | $1,192 | $1,047 | $1,975 | $1,671 | $1,406 | $744 |
| Income tax expense | ($1,210) | ($1,258) | ($1,178) | ($560) | ($1,062) | ($1,642) | ($1,509) | ($886) | ($1,179) | $1,470 | ($693) | ($1,590) | ($1,936) | ($661) | ($128) | ($2,793) | ($1,110) | $2,106 | ($1,580) | ($1,675) | ($1,097) | ($1,222) | ($991) | ($580) | ($490) | ($204) | ($421) | – | – | ($468) | ($482) | ($407) |
| Net income | $3,626 | $3,379 | $4,426 | $1,578 | $5,284 | $6,855 | $5,407 | $5,899 | $5,123 | $4,010 | $850 | $5,373 | $6,309 | $3,368 | $1,324 | $6,423 | $2,667 | ($2,411) | $3,209 | $4,317 | $6,293 | $4,714 | $2,758 | $2,217 | $1,605 | $473 | $953 | $617 | $1,343 | $1,203 | $853 | $699 |
| Per share | ||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $5.22 | $4.71 | $5.94 | $1.81 | $6.30 | $7.65 | $5.68 | $6.06 | $4.91 | $3.62 | $0.67 | $4.62 | $5.42 | $2.91 | $1.12 | $5.76 | $2.86 | ($3.09) | $4.14 | $5.48 | $7.99 | $6.16 | $3.65 | $2.94 | $2.20 | $0.62 | $1.49 | $0.79 | $1.72 | $1.61 | $1.14 | $0.94 |
| Basic EPS (GAAP) | $5.25 | $4.74 | $5.98 | $1.82 | $6.35 | $7.71 | $5.72 | $6.10 | $4.95 | $3.65 | $0.68 | $4.67 | $5.48 | $2.94 | $1.12 | $5.81 | $2.88 | ($3.09) | $4.19 | $5.62 | $8.09 | $6.21 | $3.67 | $2.97 | $2.28 | $0.64 | $1.52 | $0.79 | $1.72 | $1.61 | $1.14 | $0.94 |
| Basic shares outstanding | 656 | 669 | 706 | 758 | 803 | 863 | 908 | 938 | 1,006 | 1,070 | 1,100 | 1,118 | 1,129 | 1,106 | 1,071 | 1,060 | 882 | 818 | 735 | 744 | 761 | 749 | 751 | 739 | 704 | 739 | 627 | 782 | 782 | 745 | 745 | 745 |
| Margins | ||||||||||||||||||||||||||||||||
| Gross margin | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | 36.8% | 29.3% | 26.6% | 26.3% | 25.7% | 24.9% | 24.6% | 24.2% | 35.3% | – | – | – | – | – |
| Operating margin | 8.3% | 8.0% | 8.4% | 8.6% | 8.7% | 12.4% | 10.2% | 9.8% | 9.3% | 5.7% | 7.0% | 9.2% | 13.8% | 5.9% | 2.1% | 14.3% | 7.5% | (10.7%) | 9.9% | 12.2% | 8.6% | 9.6% | 9.2% | 6.7% | 4.3% | 1.5% | 3.9% | 4.2% | 7.4% | 149.8% | 113.1% | 63.2% |
| Net margin | 4.6% | 4.4% | 6.2% | 2.4% | 7.7% | 10.0% | 8.0% | 8.5% | 7.5% | 6.4% | 1.4% | 8.8% | 9.9% | 4.9% | 1.9% | 9.1% | 5.1% | (5.9%) | 6.3% | 9.2% | 13.0% | 10.6% | 7.1% | 6.3% | 4.9% | 1.5% | 3.1% | 2.5% | 5.1% | 84.8% | 68.6% | 59.4% |