
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Valuation | ||||||||||||||||||||||||||||
| Market cap | $77,906 | $85,556 | $110,797 | $122,511 | $113,011 | $80,529 | $77,169 | $66,787 | $57,622 | $37,919 | $36,427 | $33,693 | $27,096 | $18,563 | $22,483 | $21,478 | $28,166 | $22,089 | $52,059 | $49,399 | $48,781 | – | – | $7,476 | $5,117 | $4,216 | $4,216 | $4,216 |
| Enterprise value | $75,910 | $84,879 | $101,410 | $115,056 | $106,824 | $73,194 | $73,763 | $65,372 | $56,567 | $32,408 | $33,259 | $29,118 | $22,967 | $14,153 | $14,209 | $12,574 | $16,052 | $27,182 | $58,335 | $53,811 | $52,846 | – | – | $2,492 | $1,768 | $4,814 | $4,738 | $4,518 |
| P/E (TTM) at period end | 13.76× | 14.31× | 18.51× | 20.79× | 18.35× | 17.61× | 16.05× | 17.81× | 14.99× | 15.35× | 14.23× | 13.11× | 10.88× | 6.99× | 8.49× | 7.44× | 5.93× | 8.87× | 15.56× | 15.96× | 19.80× | – | – | 13.61× | 14.95× | 18.66× | 93.90× | 24.46× |
| P/S (TTM) at period end | 0.39× | 0.48× | 0.65× | 0.78× | 0.82× | 0.66× | 0.74× | 0.73× | 0.64× | 0.45× | 0.46× | 0.46× | 0.38× | 0.30× | 0.37× | 0.37× | 0.43× | 0.36× | 0.85× | 0.87× | 1.08× | – | – | 0.56× | 0.49× | 0.24× | 0.34× | 0.38× |
| P/B at period end | 1.78× | 2.07× | 2.82× | 3.38× | 3.13× | 2.43× | 2.43× | 2.34× | 2.17× | 1.51× | 1.58× | 1.39× | 1.09× | 0.78× | 0.97× | 0.90× | 1.13× | 1.03× | 2.26× | 2.01× | 1.95× | – | – | 1.39× | 2.48× | 2.20× | 2.54× | 2.48× |
| EV / EBITDA (TTM) | 8.68× | 9.17× | 9.90× | 11.55× | 12.06× | 9.74× | 12.00× | 11.78× | 13.20× | 6.61× | 6.84× | 6.44× | 5.59× | 3.80× | 3.66× | 3.01× | 3.74× | 6.10× | 9.60× | 9.79× | 11.09× | – | – | 2.58× | 2.74× | – | – | – |
| EV / Sales (TTM) | 0.38× | 0.48× | 0.59× | 0.73× | 0.77× | 0.60× | 0.71× | 0.71× | 0.63× | 0.38× | 0.42× | 0.39× | 0.32× | 0.23× | 0.23× | 0.21× | 0.25× | 0.44× | 0.95× | 0.94× | 1.17× | – | – | 0.19× | 0.17× | 0.28× | 0.38× | 0.41× |
| Returns | ||||||||||||||||||||||||||||
| Return on equity | 12.9% | 14.5% | 15.2% | 16.3% | 17.1% | 13.8% | 15.2% | 13.1% | 14.5% | 9.8% | 11.1% | 10.6% | 10.1% | 11.2% | 11.4% | 12.1% | 19.1% | 11.6% | 14.6% | 12.6% | 9.9% | 4.9% | 12.9% | 10.2% | 16.6% | 11.8% | 2.7% | 10.1% |
| Return on invested capital | 9.0% | 9.0% | 11.1% | 11.7% | 10.4% | 9.5% | 10.0% | 9.2% | 9.5% | 7.1% | 7.1% | 7.0% | 7.3% | 6.9% | 8.2% | 8.7% | 9.4% | 12.3% | 12.9% | 11.7% | 9.0% | 5.3% | 10.1% | 12.8% | 12.3% | – | – | – |
| Dividend yield | 2.0% | 1.8% | 1.3% | 1.0% | 1.0% | 1.2% | 1.1% | 1.2% | 1.2% | 1.8% | 1.8% | 1.4% | 1.7% | 2.0% | 1.6% | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Financial health | ||||||||||||||||||||||||||||
| Current ratio | 1.54× | 1.45× | 1.44× | 1.40× | 1.47× | 1.55× | 1.66× | 1.56× | 1.55× | 1.61× | 1.62× | 1.70× | 1.82× | 1.83× | 1.70× | 1.87× | 1.91× | 0.81× | 0.81× | 0.75× | 2.14× | 0.60× | – | – | – | – | – | – |
| Debt / equity | 0.73× | 0.75× | 0.63× | 0.66× | 0.63× | 0.60× | 0.61× | 0.63× | 0.70× | 0.61× | 0.66× | 0.60× | 0.57× | 0.62× | 0.42× | 0.37× | 0.34× | 0.41× | 0.39× | 0.29× | 0.27× | 0.23× | 0.34× | 0.31× | 0.55× | 0.31× | 0.31× | 0.18× |
| Effective tax rate | 15.6% | 24.5% | 22.3% | 22.5% | 23.1% | 26.7% | 19.7% | 26.0% | 3.1% | 45.8% | 44.7% | 41.4% | 31.4% | 31.3% | 33.1% | 33.7% | 35.9% | 20.2% | 36.4% | 37.0% | 36.7% | 33.5% | 36.1% | – | 35.0% | – | – | – |
| Share count | ||||||||||||||||||||||||||||
| Diluted shares outstanding | 225 | 233 | 237 | 243 | 247 | 254 | 260 | 264 | 268 | 268 | 273 | 286 | 304 | 325 | 365 | 416 | 480 | 523 | 602 | 642 | 625 | 286 | 284 | 243 | 207 | 206 | 206 | 206 |
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue and gross profit | |||||||||||||||||||||||||||||
| Revenue | $201,831 | $199,125 | $177,011 | $171,340 | $156,595 | $138,639 | $121,867 | $104,213 | $92,105 | $90,040 | $84,863 | $79,156 | $73,874 | $71,024 | $61,497 | $60,711 | $58,698 | $64,940 | $61,251 | $61,168 | $57,009 | $45,151 | $20,816 | $16,751 | $13,255 | $10,445 | $17,314 | $12,351 | $11,072 |
| Cost of revenue | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | ($468) | ($433) | ($42,520) | – | – | – | – | – | – | – | – |
| Gross profit | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | $60,783 | $60,735 | $14,489 | – | – | – | – | – | – | – | – |
| Operating expenses | |||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($23,044) | ($20,984) | ($20,025) | ($20,087) | ($17,700) | ($15,918) | ($17,450) | ($13,364) | ($14,020) | ($12,650) | ($12,559) | ($12,535) | ($11,748) | ($9,953) | ($8,680) | ($8,436) | ($8,733) | ($9,019) | ($8,497) | ($8,702) | – | – | ($3,478) | ($3,110) | ($12,346) | ($1,986) | – | – | – |
| Total operating expenses | ($190,764) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | ($56,435) | ($54,780) | ($9,126) | – | – | – | – | – | – | – | – |
| Total costs and expenses | ($196,404) | ($191,926) | ($169,149) | ($162,841) | ($148,312) | ($131,080) | ($115,507) | ($98,214) | ($86,679) | ($85,865) | ($80,062) | ($74,403) | ($69,456) | ($67,022) | ($57,877) | ($56,929) | ($54,621) | ($60,760) | ($56,903) | ($55,213) | ($51,646) | ($41,019) | ($19,022) | ($15,552) | ($12,444) | ($9,920) | – | – | – |
| Operating income | $5,427 | $7,199 | $7,862 | $8,499 | $8,283 | $7,559 | $6,360 | $5,999 | $5,426 | $4,175 | $4,801 | $4,753 | $4,418 | $4,001 | $3,620 | $3,782 | $4,078 | $4,179 | $4,348 | $5,955 | $5,363 | $4,132 | $1,794 | $1,199 | $810 | $525 | – | – | – |
| Earnings | |||||||||||||||||||||||||||||
| EBITDA | $6,916 | $8,745 | $9,255 | $10,244 | $9,958 | $8,861 | $7,514 | $6,146 | $5,550 | $4,286 | $4,905 | $4,859 | $4,525 | $4,109 | $3,727 | $3,878 | $4,181 | $4,286 | $4,453 | $6,075 | $5,496 | $4,766 | $2,073 | $1,444 | $968 | $645 | – | – | – |
| Interest income | – | – | – | – | – | – | – | – | – | – | – | – | $769 | $706 | $728 | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,445) | ($1,402) | ($1,185) | ($1,030) | ($851) | ($798) | ($784) | ($746) | ($753) | ($739) | ($723) | ($653) | ($601) | ($603) | ($512) | ($430) | ($419) | ($447) | ($470) | ($448) | ($404) | ($226) | ($142) | ($131) | ($98) | ($60) | – | – | – |
| Pre-tax income | $6,250 | $6,710 | $7,904 | $7,715 | $7,600 | $7,995 | $6,238 | $5,985 | $5,068 | $3,964 | $4,555 | $4,631 | $4,368 | $3,840 | $3,858 | $3,958 | $4,354 | $7,403 | $3,122 | $5,258 | $4,914 | $3,890 | $1,443 | $1,219 | – | $525 | – | – | – |
| Income tax expense | ($1,147) | ($1,049) | ($1,933) | ($1,724) | ($1,712) | ($1,846) | ($1,666) | ($1,178) | ($1,318) | ($121) | ($2,085) | ($2,071) | ($1,808) | ($1,206) | ($1,207) | ($1,311) | ($1,467) | ($2,657) | ($632) | ($1,912) | ($1,820) | ($1,426) | ($483) | ($440) | ($255) | ($183) | – | – | – |
| Net income | $5,139 | $5,662 | $5,980 | $5,987 | $5,894 | $6,158 | $4,572 | $4,807 | $3,750 | $3,843 | $2,470 | $2,560 | $2,570 | $2,490 | $2,656 | $2,647 | $2,887 | $4,746 | $2,491 | $3,345 | $3,095 | $2,464 | $960 | $774 | $549 | $342 | $226 | $45 | $172 |
| Per share | |||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $23.45 | $25.21 | $25.68 | $25.22 | $24.28 | $24.95 | $17.98 | $18.47 | $14.19 | $14.35 | $9.21 | $9.38 | $8.99 | $8.20 | $8.18 | $7.25 | $6.94 | $9.88 | $4.76 | $5.56 | $4.82 | $3.94 | $3.05 | $2.73 | $2.26 | $1.65 | $1.10 | $0.22 | $0.84 |
| Basic EPS (GAAP) | $23.54 | $25.28 | $25.81 | $25.38 | $24.56 | $25.26 | $18.23 | $18.81 | $14.53 | $14.70 | $9.39 | $9.73 | $9.31 | $8.34 | $8.26 | $7.35 | $7.03 | $9.96 | $4.79 | $5.64 | $4.93 | $4.03 | $3.15 | $2.80 | $2.31 | $1.66 | $1.10 | $0.22 | $0.84 |
| Basic shares outstanding | 219 | 224 | 232 | 236 | 240 | 244 | 251 | 256 | 258 | 262 | 263 | 263 | 276 | 298 | 322 | 360 | 411 | 476 | 520 | 593 | 628 | 611 | 277 | 277 | 238 | 207 | 206 | 206 | 206 |
| Margins | |||||||||||||||||||||||||||||
| Gross margin | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | 99.2% | 99.3% | 25.4% | – | – | – | – | – | – | – | – |
| Operating margin | 2.7% | 3.6% | 4.4% | 5.0% | 5.3% | 5.5% | 5.2% | 5.8% | 5.9% | 4.6% | 5.7% | 6.0% | 6.0% | 5.6% | 5.9% | 6.2% | 6.9% | 6.4% | 7.1% | 9.7% | 9.4% | 9.2% | 8.6% | 7.2% | 6.1% | 5.0% | – | – | – |
| Net margin | 2.5% | 2.8% | 3.4% | 3.5% | 3.8% | 4.4% | 3.8% | 4.6% | 4.1% | 4.3% | 2.9% | 3.2% | 3.5% | 3.5% | 4.3% | 4.4% | 4.9% | 7.3% | 4.1% | 5.5% | 5.4% | 5.5% | 4.6% | 4.6% | 4.1% | 3.3% | 1.3% | 0.4% | 1.6% |