
| 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 | $73,521 | $76,809 | $87,625 | $101,304 | $76,106 | $68,997 | $67,774 | $62,945 | $67,310 | $44,209 | $48,498 | $27,157 | $24,433 | $15,226 | $11,369 | $10,003 | $9,666 | $4,673 | $15,216 | $14,515 | $14,224 | $11,129 | $8,041 | $5,800 | $13,963 | $20,636 | $15,668 | $16,321 | $12,668 | $10,417 | $7,828 | $4,602 | $4,493 | $4,193 | $4,381 | $3,103 | $4,734 | $3,715 | $3,476 | $4,198 | $4,415 |
| Enterprise value | $96,413 | $100,776 | $109,829 | $126,041 | $104,388 | $91,053 | $100,262 | $99,530 | $67,641 | $45,427 | $51,396 | $30,805 | $26,131 | $17,549 | $11,548 | $11,082 | $10,801 | $5,486 | $2,285 | $2,006 | ($2,072) | ($6,670) | ($21,282) | ($23,373) | ($11,428) | ($7,314) | ($9,838) | ($19,194) | ($25,499) | ($27,871) | ($31,844) | ($31,025) | ($30,965) | ($26,547) | ($23,959) | ($23,014) | ($19,910) | $4,358 | $3,792 | $4,710 | $4,753 |
| P/E (TTM) at period end | 12.34× | 22.37× | 16.97× | 15.11× | 14.17× | 8.16× | 13.28× | 23.87× | 30.09× | 23.68× | 23.16× | 12.92× | 16.55× | 9.38× | 9.02× | 7.82× | 7.42× | 16.00× | 13.65× | 12.57× | 8.75× | 7.74× | 12.72× | – | 14.87× | 21.84× | 8.83× | 12.63× | 11.66× | 9.86× | 37.10× | 8.31× | 19.20× | 13.48× | 9.76× | 9.40× | 8.42× | 7.87× | 5.07× | 7.85× | – |
| P/S (TTM) at period end | 0.27× | 0.31× | 0.45× | 0.56× | 0.44× | 0.43× | 0.44× | 1.29× | 1.61× | 1.11× | 1.28× | 0.78× | 0.75× | 0.52× | 0.53× | 0.47× | 0.52× | 0.24× | 0.86× | 0.88× | 0.85× | 0.61× | 0.43× | 0.30× | 0.75× | 1.06× | 0.84× | 0.92× | 1.08× | 0.55× | 0.41× | 0.25× | 0.33× | 0.30× | 0.31× | 0.22× | 0.41× | – | – | – | – |
| P/B at period end | 1.76× | 1.87× | 1.90× | 2.27× | 1.62× | 1.37× | 1.49× | 1.53× | 4.91× | 3.22× | 4.03× | 2.52× | 2.31× | 1.56× | 1.36× | 1.51× | 1.78× | 1.30× | 3.20× | 3.35× | 2.65× | 2.14× | 1.78× | 1.50× | 2.76× | 3.81× | 2.55× | 1.97× | 1.60× | 1.45× | 1.09× | 0.79× | 0.68× | 0.73× | 0.75× | 0.59× | 0.86× | 0.71× | 0.70× | 0.91× | 1.18× |
| EV / EBITDA (TTM) | 8.05× | 8.27× | 9.49× | 11.07× | 9.61× | 8.31× | 8.55× | 20.50× | 15.00× | 12.28× | 3.97× | 2.53× | 0.79× | 5.11× | 5.20× | 5.29× | 4.99× | 8.76× | 1.25× | 1.03× | (1.03×) | (2.56×) | (18.52×) | – | (9.34×) | (4.26×) | (6.81×) | (9.25×) | – | – | – | – | – | – | – | – | – | – | – | – | – |
| EV / Sales (TTM) | 0.35× | 0.41× | 0.56× | 0.70× | 0.60× | 0.57× | 0.65× | 2.05× | 1.62× | 1.14× | 1.36× | 0.88× | 0.81× | 0.60× | 0.53× | 0.53× | 0.59× | 0.29× | 0.13× | 0.12× | (0.12×) | (0.37×) | (1.13×) | (1.21×) | (0.61×) | (0.37×) | (0.53×) | (1.09×) | (2.16×) | (1.47×) | (1.68×) | (1.69×) | (2.26×) | (1.91×) | (1.68×) | (1.65×) | (1.73×) | – | – | – | – |
| Returns | |||||||||||||||||||||||||||||||||||||||||
| Return on equity | 14.3% | 8.4% | 11.2% | 15.0% | 11.4% | 16.8% | 11.3% | 6.4% | 16.3% | 13.6% | 17.4% | 19.5% | 14.0% | 16.6% | 15.1% | 19.2% | 24.0% | 8.1% | 23.5% | 26.7% | 30.3% | 27.6% | 14.0% | (11.6%) | 18.6% | 17.5% | 28.9% | 15.6% | 13.7% | 14.7% | 2.9% | 9.5% | 3.6% | 5.4% | 7.7% | 6.3% | 10.2% | 9.0% | 13.8% | 11.6% | (22.8%) |
| Return on invested capital | 11.3% | 10.3% | 12.0% | 9.7% | 8.3% | 8.7% | 8.0% | 3.9% | 15.1% | 12.3% | 50.7% | 50.4% | 170.5% | 15.6% | 14.4% | 16.2% | 18.5% | 6.2% | 24.5% | 25.1% | 25.1% | 38.3% | 13.4% | (10.1%) | 20.6% | 33.1% | 13.1% | 17.1% | (88.5%) | 14.6% | 3.0% | 9.6% | – | – | – | – | – | 9.7% | 15.7% | 13.6% | (20.9%) |
| Dividend yield | 2.2% | 2.0% | 1.7% | 1.4% | 1.8% | 0.0% | 0.0% | – | – | – | – | 0.0% | 0.0% | 0.1% | 0.1% | 0.1% | 0.1% | 0.3% | 0.1% | 0.1% | 0.1% | 0.9% | 2.3% | 3.2% | 1.4% | 1.0% | 1.5% | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Financial health | |||||||||||||||||||||||||||||||||||||||||
| Current ratio | 0.85× | 0.84× | 0.77× | 0.73× | 0.83× | 0.77× | 0.74× | 0.64× | 0.85× | 1.63× | 2.37× | 1.90× | – | (2.30×) | 433.49× | 73.21× | 377.64× | 120.28× | 12552.33× | 104.79× | 426.03× | – | – | 663.48× | 1774.08× | 632.40× | 1625.67× | 15.80× | 14.45× | 17.29× | 16.13× | 16.81× | 235.85× | 154.11× | 167.02× | 102.16× | 189.45× | – | – | – | – |
| Debt / equity | 0.75× | 0.78× | 0.67× | 0.70× | 0.71× | 0.65× | 0.83× | 1.04× | 0.39× | 0.36× | 0.43× | 0.47× | 0.47× | 0.53× | 0.61× | 0.43× | 0.47× | 0.67× | 0.38× | 0.39× | 0.27× | 0.28× | 0.33× | 0.42× | 0.33× | 0.24× | 0.23× | 0.21× | 0.27× | 0.18× | 0.21× | 0.29× | 0.24× | 0.24× | 0.21× | 0.27× | 0.17× | 0.12× | 0.06× | 0.11× | 0.09× |
| Effective tax rate | 19.2% | 28.3% | 2.6% | 19.2% | 20.2% | 21.9% | 22.1% | 26.1% | 38.1% | 38.1% | 37.6% | 36.6% | 32.1% | 34.4% | 32.8% | 28.8% | 31.3% | 24.1% | 31.3% | 33.0% | 28.8% | 33.6% | 31.1% | 30.2% | – | – | 42.7% | 36.2% | – | 34.0% | 15.9% | 31.2% | – | – | – | – | – | – | – | – | – |
| Share count | |||||||||||||||||||||||||||||||||||||||||
| Diluted shares outstanding | 269 | 283 | 297 | 313 | 341 | 368 | 380 | 250 | 244 | 260 | 261 | 269 | 285 | 290 | 274 | 275 | 275 | 279 | 283 | 337 | 389 | 414 | 421 | 423 | 452 | 485 | 592 | 641 | 668 | 687 | 664 | 653 | 645 | 644 | 645 | 683 | 708 | 709 | 714 | 687 | 618 |
| 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 | $282,382 | $274,900 | $247,121 | $195,265 | $180,518 | $174,069 | $160,401 | $153,566 | $48,650 | $41,806 | $39,838 | $37,876 | $34,914 | $32,380 | $29,119 | $21,631 | $21,073 | $18,414 | $19,101 | $17,623 | $16,547 | $16,684 | $18,176 | $18,808 | $19,348 | $18,607 | $19,526 | $18,726 | $17,651 | $11,781 | $18,950 | $18,955 | $18,392 | $13,712 | $13,924 | $14,295 | $13,986 | $11,494 | – | – | – | – |
| Cost of revenue | – | – | – | – | – | – | – | – | – | ($2,456) | ($2,468) | ($25,424) | ($23,241) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Gross profit | – | – | – | – | – | – | – | – | – | $39,350 | $37,370 | $12,452 | $11,673 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Operating expenses | ||||||||||||||||||||||||||||||||||||||||||
| Research and development | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Selling, general and administrative | ($14,163) | ($14,617) | ($14,844) | ($14,822) | ($13,174) | ($13,012) | ($14,072) | ($14,053) | ($11,934) | ($10,030) | ($9,790) | ($92) | ($85) | – | – | ($5,901) | ($5,744) | ($5,284) | ($5,531) | ($4,742) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Total operating expenses | – | – | – | – | – | – | – | – | – | ($35,408) | ($34,282) | ($92) | ($85) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Total costs and expenses | ($272,425) | ($265,700) | ($237,704) | ($186,729) | ($172,068) | ($166,128) | ($152,248) | ($145,489) | ($44,490) | ($37,864) | ($36,750) | ($25,516) | ($23,326) | – | ($26,244) | ($19,755) | ($19,271) | ($16,516) | ($18,719) | ($15,992) | ($14,816) | ($14,891) | ($15,801) | ($17,905) | ($19,917) | ($17,618) | ($18,029) | ($17,507) | ($15,793) | ($18,388) | ($17,349) | ($18,704) | ($17,587) | – | – | – | – | – | $570 | $833 | $701 | ($855) |
| Operating income | $9,957 | $9,200 | $9,417 | $8,536 | $8,450 | $7,941 | $8,153 | $8,077 | $4,160 | $3,942 | $3,088 | $12,360 | $11,588 | $32,380 | $2,875 | $1,876 | $1,802 | $1,898 | $382 | $1,631 | $1,731 | $1,793 | $2,375 | $903 | ($569) | $989 | $1,497 | $1,219 | $1,858 | ($6,607) | $1,601 | $251 | $805 | – | – | – | – | – | $570 | $833 | $701 | ($855) |
| Earnings | ||||||||||||||||||||||||||||||||||||||||||
| EBITDA | $12,681 | $11,975 | $12,192 | $11,571 | $11,387 | $10,864 | $10,955 | $11,728 | $4,855 | $4,508 | $3,698 | $12,945 | $12,176 | $32,977 | $3,435 | $2,221 | $2,094 | $2,166 | $626 | $1,825 | $1,939 | $2,014 | $2,605 | $1,149 | ($348) | $1,224 | $1,718 | $1,444 | $2,076 | ($6,428) | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest income | $1,022 | $1,022 | ($1,764) | $1,088 | $1,155 | $1,747 | $1,393 | $1,567 | $1,399 | – | – | – | – | – | $268 | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Interest expense | ($1,379) | ($1,400) | ($1,500) | ($1,400) | ($1,300) | ($1,300) | ($1,400) | ($1,600) | ($507) | ($243) | ($251) | – | – | ($264) | – | ($202) | ($182) | ($166) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Pre-tax income | $8,639 | $7,781 | $5,269 | $5,513 | $8,397 | $6,790 | $10,868 | $6,570 | $3,581 | $3,606 | $2,979 | $3,327 | $3,304 | $2,176 | $2,477 | $1,876 | $1,802 | $1,898 | $382 | $1,631 | $1,731 | $1,793 | $2,375 | $848 | ($569) | – | – | $1,219 | $1,858 | – | $1,601 | $251 | $805 | – | – | – | – | – | – | – | – | – |
| Income tax expense | ($1,656) | ($1,493) | ($1,491) | ($141) | ($1,615) | ($1,370) | ($2,379) | ($1,450) | ($935) | ($1,374) | ($1,136) | ($1,250) | ($1,210) | ($698) | ($853) | ($615) | ($519) | ($594) | ($92) | ($511) | ($572) | ($517) | ($798) | ($264) | $172 | ($498) | ($506) | ($520) | ($672) | ($416) | ($545) | ($40) | ($251) | $69 | $158 | ($131) | ($34) | ($134) | ($98) | ($147) | ($166) | $0 |
| Net income | $6,456 | $5,957 | $3,434 | $5,164 | $6,704 | $5,370 | $8,458 | $5,104 | $2,637 | $2,237 | $1,867 | $2,094 | $2,102 | $1,476 | $1,623 | $1,260 | $1,279 | $1,302 | $292 | $1,115 | $1,155 | $1,625 | $1,438 | $632 | ($447) | $939 | $945 | $1,774 | $1,292 | $1,086 | $1,056 | $211 | $554 | $234 | $311 | $449 | $330 | $562 | $472 | $686 | $535 | ($855) |
| Per share | ||||||||||||||||||||||||||||||||||||||||||
| Diluted EPS (GAAP) | $24.17 | $22.18 | $12.12 | $17.39 | $21.41 | $15.75 | $22.96 | $13.44 | $10.54 | $8.77 | $7.19 | $8.04 | $7.83 | $5.18 | $5.61 | $4.59 | $4.65 | $4.73 | $1.05 | $3.87 | $3.43 | $4.17 | $3.48 | $1.50 | ($1.06) | $2.08 | $1.95 | $3.00 | $2.02 | $1.63 | $1.54 | $0.32 | $0.85 | $0.36 | $0.48 | $0.70 | $0.48 | $0.78 | $0.67 | $0.96 | $0.78 | ($1.38) |
| Basic EPS (GAAP) | $24.27 | $22.33 | $12.25 | $17.57 | $21.66 | $15.89 | $23.17 | $13.58 | $10.69 | $8.92 | $7.31 | $8.17 | $7.97 | $5.28 | $5.70 | $4.65 | $4.69 | $4.75 | $1.05 | $3.94 | $3.49 | $4.25 | $3.51 | $1.51 | ($1.06) | $2.08 | $1.96 | $3.04 | $2.04 | $1.64 | $1.54 | $0.32 | $0.85 | $0.36 | $0.48 | $0.70 | $0.48 | $0.78 | $0.67 | $0.96 | $0.78 | ($1.38) |
| Basic shares outstanding | 264 | 267 | 280 | 294 | 310 | 338 | 365 | 376 | 247 | 244 | 255 | 256 | 264 | 279 | 285 | 271 | 273 | 274 | 277 | 283 | 331 | 382 | 409 | 419 | 423 | 452 | 482 | 584 | 633 | 662 | 686 | 664 | 651 | 645 | 644 | 645 | 683 | 708 | 709 | 714 | 687 | 618 |
| Margins | ||||||||||||||||||||||||||||||||||||||||||
| Gross margin | – | – | – | – | – | – | – | – | – | 94.1% | 93.8% | 32.9% | 33.4% | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Operating margin | 3.5% | 3.3% | 3.8% | 4.4% | 4.7% | 4.6% | 5.1% | 5.3% | 8.6% | 9.4% | 7.8% | 32.6% | 33.2% | 100.0% | 9.9% | 8.7% | 8.6% | 10.3% | 2.0% | 9.3% | 10.5% | 10.7% | 13.1% | 4.8% | (2.9%) | 5.3% | 7.7% | 6.5% | 10.5% | (56.1%) | 8.4% | 1.3% | 4.4% | – | – | – | – | – | – | – | – | – |
| Net margin | 2.3% | 2.2% | 1.4% | 2.6% | 3.7% | 3.1% | 5.3% | 3.3% | 5.4% | 5.4% | 4.7% | 5.5% | 6.0% | 4.6% | 5.6% | 5.8% | 6.1% | 7.1% | 1.5% | 6.3% | 7.0% | 9.7% | 7.9% | 3.4% | (2.3%) | 5.0% | 4.8% | 9.5% | 7.3% | 9.2% | 5.6% | 1.1% | 3.0% | 1.7% | 2.2% | 3.1% | 2.4% | 4.9% | – | – | – | – |