Hollow marker is the consensus estimate; filled is the reported figure, colored by beat or miss.
Outlined bar is the consensus estimate; solid is reported.
Periods without a consensus estimate or a reported figure show a dash.
| Period | EPS estimate | EPS actual | EPS surprise % | Revenue estimate | Revenue actual | Revenue surprise % |
|---|---|---|---|---|---|---|
| Q3 26 | $1.37 | $1.33 | -2.9% | — | — | — |
| Q2 26 | $1.34 | $1.31 | -2.2% | — | — | — |
| Q1 26 | $0.59 | $0.66 | +11.9% | — | $745.6M | — |
| Q3 25 | $1.27 | $1.32 | +3.9% | — | $727.8M | — |
| Q2 25 | $1.35 | $1.36 | +0.7% | — | $715.6M | — |
| Q1 25 | $1.21 | $1.25 | +3.3% | — | $678.1M | — |
| Q4 24 | $1.16 | $1.28 | +10.3% | — | $670.8M | — |
| Q3 24 | $1.12 | $1.25 | +11.6% | — | $673.3M | — |
| Q2 24 | $1.27 | $1.32 | +3.9% | — | $707.1M | — |
| Q1 24 | $1.1 | $1.2 | +9.1% | — | $689.7M | — |
| Q4 23 | $1.04 | $1.13 | +8.7% | — | $689.3M | — |
| Q3 23 | $0.95 | $1.08 | +13.7% | — | $681M | — |
| Q2 23 | $1.04 | $1.21 | +16.3% | — | $720.4M | — |
| Q1 23 | $0.93 | $1.04 | +11.8% | — | $684M | — |
| Q4 22 | $0.91 | $1.05 | +15.4% | — | $664.1M | — |
| Q3 22 | $0.84 | $0.92 | +9.5% | — | $620.3M | — |
Reported per-share earnings by fiscal year; the line turns dotted where reported figures end and the analyst consensus begins, with the shaded band marking the low–high range.
Reported revenue by fiscal year; the line turns dotted where reported figures end and the analyst consensus begins, with the shaded band marking the low–high range.
Periods without a consensus estimate or a reported figure show a dash.
| Period | EPS estimate | EPS actual | EPS surprise % | Revenue estimate | Revenue actual | Revenue surprise % |
|---|---|---|---|---|---|---|
| FY25 | — | $3.71 | — | — | $2.8B | — |
| FY24 | — | $4.36 | — | — | $2.7B | — |
| FY23 | — | $3.39 | — | — | $2.8B | — |
| FY22 | — | $3.7 | — | — | $2.6B | — |
| FY21 | — | $3.92 |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Revenue | $2.2B | $2B | $2.4B | $2.6B | $2.8B | $2.7B | $2.8B |
| YoY change | — | -13.2% | +24.5% | +6.81% | +6.99% | -1.22% | +3.71% |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q3 23 | Q4 23 |
|---|
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Revenue | 2.2B | 2B | 2.4B | 2.6B | 2.8B | 2.7B | 2.8B |
| Cost of revenue | 1.5B | 1.3B | 1.6B | 1.7B | 1.8B | 1.7B | 1.8B |
| Gross profit | 796.4M | 682.5M | 838M | 885.5M | 1B | 1B | 1B |
| Gross margin | 35.4% | 35% | 34.5% | 34.1% | 36.6% | 37.9% | 36.9% |
| Research & development | — | — | — | — | — | — | — |
| Selling, general & administrative | 517.3M | 458.7M | 512.8M | 533.4M | 587.5M | 579.8M | 608.4M |
| Operating expenses | 517.3M | 458.7M | 512.8M | 533.4M | 587.5M | 579.8M | 608.4M |
| Operating income | 279.1M | 223.8M | 325.2M | 352.2M | 428.3M | 457.7M | 439.9M |
| Operating margin | 12.4% | 11.5% | 13.4% | 13.6% | 15.4% | 16.7% | 15.5% |
| Non-operating income, net | -56.7M | -21.6M | -7.7M | -14M | -24.1M | -22.4M | -27.8M |
| Pretax income | 221.5M | 205.8M | 319.1M | 300.3M | 319.1M | 370.4M | 328.3M |
| Income tax | 44.7M | 46M | 80.4M | 69.2M | 95.7M | 77.3M | 69.2M |
| Net income | 176.7M | 159.9M | 238.7M | 228M | 211M | 270.7M | 233.2M |
| Net margin | 7.87% | 8.2% | 9.83% | 8.79% | 7.61% | 9.88% | 8.21% |
| EBITDA | 415.8M | 322M | 420M | 418.1M | 503.3M | 512.3M | 524M |
| EPS | 2.88 | 2.62 | 3.92 | 3.7 | 3.39 | 4.36 | 3.71 |
| Diluted EPS | 2.88 | 2.62 | 3.92 | 3.69 | 3.36 | 4.31 | 3.67 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 681M | 689.3M | 689.7M | 707.1M | 673.3M | 670.8M | 678.1M | 715.6M | 727.8M | 721M | 745.6M | 807.6M |
| Cost of revenue | 431.3M | 434.6M | 434.7M | 436.7M | 419.5M | 412.4M | 422.9M | 449.5M | 458.5M | 463.2M | 470.5M | 500.4M |
| Gross profit | 249.7M | 254.7M | 255M | 270.3M | 253.8M | 258.3M | 255.2M | 266M | 269.3M | 257.8M | 275.1M | 307.2M |
| Gross margin | 36.7% | 37% | 37% | 38.2% | 37.7% | 38.5% | 37.6% | 37.2% | 37% | 35.8% | 36.9% | 38% |
| Research & development | — | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 145.4M | 144.6M | 142.4M | 146.2M | 145.9M | 145.2M | 140.9M | 155.6M | 158.3M | 153.7M | 174.5M | 210.2M |
| Operating expenses | 145.4M | 144.6M | 142.4M | 146.2M | 145.9M | 145.2M | 140.9M | 155.6M | 158.3M | 153.7M | 174.5M | 210.2M |
| Operating income | 104.3M | 110.1M | 112.6M | 124.1M | 107.9M | 113.1M | 114.3M | 110.5M | 111M | 104.1M | 100.6M | 97M |
| Operating margin | 15.3% | 16% | 16.3% | 17.6% | 16% | 16.9% | 16.9% | 15.4% | 15.2% | 14.4% | 13.5% | 12% |
| Non-operating income, net | -3.1M | -6.4M | -14.1M | -4.8M | -1.9M | -1.7M | -4.5M | -1.4M | -4.3M | -17.5M | -10.2M | -18.3M |
| Pretax income | 80.6M | 77.5M | 81.4M | 103.4M | 89.1M | 96.5M | 93.1M | 88.1M | 83M | 64.1M | 64.9M | 48.1M |
| Income tax | 19.8M | 17.9M | 18.5M | 17.9M | 18.1M | 22.9M | 20.5M | 18.3M | 17.7M | 12.7M | 13.1M | 11.7M |
| Net income | 59.1M | 51.5M | 61.6M | 84.4M | 69.8M | 55M | 69.8M | 68.1M | 56.5M | 38.8M | 49.2M | 34M |
| Net margin | 8.68% | 7.47% | 8.93% | 11.9% | 10.4% | 8.19% | 10.3% | 9.52% | 7.77% | 5.38% | 6.6% | 4.21% |
| EBITDA | 121.8M | 134.4M | 129M | 140.7M | 125M | 129.8M | 131.8M | 129.8M | 132.8M | 129.5M | 124.5M | 124.9M |
| EPS | 0.95 | — | 0.99 | 1.36 | 1.12 | 0.88 | 1.1 | 1.1 | 0.9 | 0.61 | 0.78 | 0.5 |
| Diluted EPS | 0.94 | — | 0.98 | 1.35 | 1.11 | 0.88 | 1.1 | 1.09 | 0.9 | 0.61 | 0.78 | 0.5 |
Annual history by fiscal year; click a table row below to chart a different metric.
Current values are trailing twelve months where available, otherwise the latest fiscal year; unreported figures show a dash.
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Market cap | — | — | — | 2.8B | 5.2B | 7.3B | 6.8B | 4.2B |
| Enterprise value | — | — | — | 4.1B | 6.2B | 8.2B | 8B | 7B |
| Shares outstanding | 60M | 60M | 60M | 60.1M | 60.2M | 60.7M | 61.1M | 61.1M |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | 12.4 | 24.7 | 26.9 | 29.3 | 22.5 |
| P/S | — | — | — | 1.09 | 1.88 | 2.66 | 2.4 | 1.49 |
| P/B | — | — | — | 2.03 | 3.17 | 4.03 | 3.09 | 1.89 |
| EV/EBITDA | — | — | — | 9.71 | 12.4 | 16 | 15.2 | 13 |
| EV/Sales | — | — | — | 1.57 | 2.25 | 2.99 | 2.81 | 2.33 |
| Earnings yield | — | — | — | 8.09% | 4.04% | 3.72% | 3.42% | 4.44% |
| FCF yield | — | — | — | 6.18% | 5.41% | 4.17% | 3.12% | 3.5% |
| PEG | — | — | — | — | — | — | — | -0.41 |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Gross margin | 35.4% | 35% | 34.5% | 34.1% | 36.6% | 37.9% | 36.9% | 38% |
| Operating margin | 12.4% | 11.5% | 13.4% | 13.6% | 15.4% | 16.7% | 15.5% | 12% |
| Net margin | 7.87% | 8.2% | 9.83% | 8.79% | 7.61% | 9.88% | 8.21% | 5.75% |
| ROE | — | 6.28% | 9.54% | 16.4% | 12.8% | 15% | 10.5% | 8.73% |
| ROA | — | 4.72% | 6.9% | 6.07% | 5.51% | 6.71% | 4.89% | 5% |
| ROIC | — | 6.7% | 9.46% | 10.3% | 11.3% | 13.3% | 10.3% | 6.63% |
| Return on tangible assets | — | -18.3% | -36.9% | -67.1% | -60.8% | -110.1% | -48.7% | -10.7% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Current ratio | — | 1.75 | 1.62 | 1.64 | 1.61 | 1.82 | 1.9 | 1.96 |
| Quick ratio | — | 1.07 | 0.91 | 0.95 | 0.98 | 1.18 | 1.17 | 1.22 |
| Debt / equity | — | 0.04 | 0.04 | 0.95 | 0.68 | 0.64 | 0.61 | 0.98 |
| Debt / assets | — | 0.03 | 0.03 | 0.35 | 0.29 | 0.29 | 0.28 | 0.39 |
| Net debt / EBITDA | — | 0.15 | 0.16 | 2.97 | 2.02 | 1.78 | 2.21 | 4.54 |
| Interest coverage | — | — | — | 8.91 | 4.75 | 6.71 | 4.91 | 3.54 |
| Effective tax rate | 20.2% | 22.3% | 25.2% | 23% | 30% | 20.9% | 21.1% | 21.2% |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Revenue per share | 37.5 | 32.5 | 40.5 | 43.2 | 46.1 | 45.1 | 46.5 | 49.3 |
| EPS (basic) | 2.88 | 2.62 | 3.92 | 3.7 | 3.39 | 4.36 | 3.71 | 3.71 |
| EPS (diluted) | 2.88 | 2.62 | 3.92 | 3.69 | 3.36 | 4.31 | 3.67 | 3.19 |
| Book value per share | — | 42.4 | 41.7 | 23.1 | 27.4 | 29.8 | 36.2 | 38.1 |
| FCF per share | 3.42 | 4.48 | 3.59 | 2.9 | 4.69 | 5 | 3.49 | 3.04 |
| Cash per share | — | 0.82 | 0.69 | 1.2 | 1.69 | 4.11 | 3.04 | 3.5 |
| Capex per share | 0.62 | 0.58 | 0.51 | 0.59 | 0.72 | 0.79 | — | — |
| Metric | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|---|---|
| Capex / revenue | 1.67% | 1.77% | 1.25% | 1.36% | 1.57% | 1.75% | — | — |
| Capex / operating cash flow | 17.3% | 11.1% | 11.6% | 15.8% | 13.2% | 14% | — | — |
| Payout ratio | — | 0% | 0% | 2.66% | 6.32% | 6.28% | 9.4% | 13.2% |
| Dividend yield | — | — | — | 0.21% | 0.26% | 0.23% | 0.32% | 0.71% |
Split-adjusted payout per share by ex-dividend date.
| Ex-dividend | Amount |
|---|---|
| Jul 2, 2026 | $0.12 |
| Apr 2, 2026 | $0.10 |
| Dec 31, 2025 | $0.10 |
| Oct 3, 2025 | $0.10 |
| Jul 3, 2025 | $0.10 |
| Apr 4, 2025 | $0.08 |
| Dec 31, 2024 | $0.08 |
| Sep 27, 2024 | $0.08 |
| — |
| — |
| $2.4B |
| — |
| FY20 | — | $2.62 | — | — | $2B | — |
| FY19 | — | $2.88 | — | — | $2.2B | — |
| Q1 24 |
|---|
| Q2 24 |
|---|
| Q3 24 |
|---|
| Q4 24 |
|---|
| Q1 25 |
|---|
| Q2 25 |
|---|
| Q3 25 |
|---|
| Q4 25 |
|---|
| Q1 26 |
|---|
| Q2 26 |
|---|
| Revenue | $681M | $689.3M | $689.7M | $707.1M | $673.3M | $670.8M | $678.1M | $715.6M | $727.8M | $721M | $745.6M | $807.6M |
| YoY change | +9.79% | +3.8% | +0.84% | -1.86% | -1.14% | -2.7% | -1.68% | +1.21% | +8.11% | +7.49% | +9.95% | +12.9% |
What the company owns (left stack) against what it owes plus shareholders' equity (right stack). The two stacks should match — that's the balance.
Click a row to chart it; unreported figures show a dash.
| Period | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|
| Cash & short-term investments | 49.2M | 41.2M | 72M | 102M | 249.4M | 185.9M |
| Receivables | 329.6M | 383.5M | 374.3M | 385.2M | 370.3M | 451.3M |
| Inventory | 313.4M | 420.1M | 416.8M | 392.9M | 403.7M | 481.8M |
| Total current assets | 804.9M | 964.1M | 988.7M | 997.7M | 1.1B | 1.3B |
| Property, plant & equipment | 226.2M | 221.4M | 211.8M | 211.2M | 212.1M | 261.3M |
| Goodwill & intangibles | 4.3B | 4.1B | 4.1B | 4.2B | 4.3B | 5.2B |
| Total assets | 3.4B | 3.5B | 3.8B | 3.8B | 4B | 4.8B |
| Accounts payable | 241.3M | 345.5M | 316.3M | 306.6M | 318.5M | 360.4M |
| Short-term debt | 18.6M | 20.5M | 18.7M | 22.8M | 36.5M | 24.5M |
| Total current liabilities | 460.8M | 596.6M | 601.6M | 620.1M | 632.1M | 664.8M |
| Long-term debt | 78.4M | 88.8M | 1.3B | 1.1B | 1.1B | 1.3B |
| Total liabilities | 841.1M | 959.5M | 2.4B | 2.2B | 2.2B | 2.6B |
| Shareholders' equity | 2.5B | 2.5B | 1.4B | 1.6B | 1.8B | 2.2B |
| Total debt | 97M | 109.2M | 1.3B | 1.1B | 1.2B | 1.3B |
| Net debt | 47.8M | 68M | 1.2B | 1B | 913.9M | 1.2B |
What the company owns (left stack) against what it owes plus shareholders' equity (right stack). The two stacks should match — that's the balance.
Click a row to chart it; unreported figures show a dash.
| Period | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 82.8M | — | — | — | — | — | — | — | 218.2M | 185.9M | 1B | 217.5M |
| Receivables | 388.5M | — | — | — | — | — | — | — | 460.5M | 451.3M | 488.5M | 554.1M |
| Inventory | 425.7M | 392.9M | 405.6M | 426.5M | 422.7M | 403.7M | 450.7M | 474.1M | 503.7M | 481.8M | 520.6M | 581.5M |
| Total current assets | 1B | — | — | — | — | — | — | — | 1.3B | 1.3B | 2.2B | 1.5B |
| Property, plant & equipment | 368M | — | — | — | — | — | — | — | 491.7M | 261.3M | 483.5M | 533.2M |
| Goodwill & intangibles | 4.1B | — | — | — | — | — | — | — | 5.3B | 5.2B | 5.2B | 8.2B |
| Total assets | 3.8B | — | — | — | — | — | — | — | 4.9B | 4.8B | 5.6B | 6.6B |
| Accounts payable | 302.6M | — | — | — | — | — | — | — | 342.2M | 360.4M | 398.5M | 407.4M |
| Short-term debt | 20.3M | — | — | — | — | — | — | — | 24.7M | 24.5M | 26.1M | 32M |
| Total current liabilities | 610.4M | — | — | — | — | — | — | — | 669.1M | 664.8M | 730M | 779M |
| Long-term debt | 1.2B | — | — | — | — | — | — | — | 1.4B | 1.3B | 2.1B | 2.5B |
| Total liabilities | 2.2B | — | — | — | — | — | — | — | 2.7B | 2.6B | 3.4B | 4B |
| Shareholders' equity | 1.5B | 1.6B | 1.7B | 1.7B | 1.9B | 1.8B | 2B | 2.1B | 2.2B | 2.2B | 2.2B | 2.6B |
| Total debt | 1.2B | — | — | — | — | — | — | — | 1.5B | 1.3B | 2.1B | 2.5B |
| Net debt | 1.1B | — | — | — | — | — | — | — | 1.2B | 1.2B | 1.1B | 2.3B |
Cash from operations, what's left after capex, and what went back to shareholders. Bars below the line are cash going out.
Click a row to chart it; unreported figures show a dash.
| Period | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|---|---|
| Net income | 176.7M | 159.9M | 238.7M | 228M | 211M | 270.7M | 233.2M |
| Depreciation & amortization | 80.1M | 76.6M | 75.9M | 66M | 75M | 66.8M | 84.1M |
| Stock-based compensation | 5.9M | 6.4M | 6.3M | 13M | 16.1M | 19.8M | 16.9M |
| Change in working capital | -23.2M | 83.6M | -50.3M | -65.2M | 52.5M | -14.4M | -35.3M |
| Operating cash flow | 216.9M | 312.6M | 261.9M | 223.5M | 330.5M | 343.2M | 260.6M |
| Capital expenditure | -37.5M | -34.6M | -30.4M | -35.4M | -43.6M | -48M | — |
| Investing cash flow | -37.5M | -34.6M | -35.3M | -184.4M | -62.2M | -205.7M | -439.1M |
| Dividends paid | — | 0 | 0 | -6.1M | -13.3M | -17M | -21.9M |
| Share repurchases | — | — | — | — | — | — | — |
| Financing cash flow | -181.3M | -326.6M | -220.9M | 7.6M | -219.7M | 31.7M | 113.7M |
| Net change in cash | -1.9M | -48.6M | 5.8M | 46.6M | 48.5M | 169.2M | -64.9M |
| Free cash flow | 205.4M | 269M | 215.2M | 174.1M | 282.3M | 303.6M | 213.3M |
Cash from operations, what's left after capex, and what went back to shareholders. Bars below the line are cash going out.
Click a row to chart it; unreported figures show a dash.
| Period | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income | 59.1M | 51.5M | 61.6M | 84.4M | 69.8M | 55M | 69.8M | 68.1M | 56.5M | 38.8M | 49.2M | 34M |
| Depreciation & amortization | 17.5M | 17.9M | 16.4M | 16.5M | 17.1M | 16.8M | 17.5M | 19.4M | 21.9M | 25.4M | 23.9M | 27.9M |
| Stock-based compensation | 3.7M | 5M | 4.1M | 5.8M | 4.6M | 5.3M | 5.4M | 4.5M | 2.6M | 4.4M | 3.9M | 6.4M |
| Change in working capital | 27M | 73.9M | -50.2M | -26.6M | 8.3M | 54.2M | -49.5M | -42M | 742K | 55.4M | -31.1M | -26M |
| Operating cash flow | 107.4M | 122.4M | 32.3M | 83M | 101.1M | 126.9M | 41.1M | 46.6M | 81.5M | 97.1M | 46.9M | 33.4M |
| Capital expenditure | -8.6M | -19.9M | -7M | -8.8M | -7.8M | -24.4M | -2.7M | — | — | — | — | — |
| Investing cash flow | -9.1M | -19.9M | -26.6M | -10.3M | -77.3M | -91.5M | -2.7M | -86.3M | -352.4M | 0 | — | — |
| Dividends paid | -3.6M | -3.6M | -3.6M | -3.6M | -4.9M | -4.9M | -4.9M | -4.9M | -6.1M | -6.1M | -6.1M | -6.1M |
| Share repurchases | — | — | — | — | — | — | — | — | — | — | — | — |
| Financing cash flow | -74.3M | -77.5M | -33.9M | 97.1M | -5.7M | -8.9M | -13.1M | -6.5M | 246.9M | -113.6M | 786.2M | 350.9M |
| Net change in cash | 24M | 25M | -28.2M | 169.8M | 18.1M | 26.5M | 25.3M | -46.2M | -24M | -16.5M | 833.1M | 384.4M |
| Free cash flow | 95.5M | 103.1M | 37.1M | 74M | 90.4M | 102.2M | 28.1M | 37.4M | 70.3M | 77.4M | 33.2M | 15.7M |