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 % |
|---|---|---|---|---|---|---|
| Q2 26 | $0.56 | $0.63 | +12.5% | — | $1.4B | — |
| Q1 26 | $0.41 | $0.64 | +56.1% | — | $1.4B | — |
| Q4 25 | $0.46 | $0.57 | +23.9% | — | $1.4B | — |
| Q3 25 | $0.47 | $0.45 | -4.3% | — | $1.3B | — |
| Q2 24 | $0.35 | $0.48 | +37.1% | — | $981.8M | — |
| Q1 24 | $0.29 | $0.34 | +17.2% | — | $934.7M | — |
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 | — | $1.23 | — | — | $5.3B | — |
| FY24 | — | $0.38 | — | — | $4.1B | — |
| FY23 | — | $0.75 | — | — | $3.1B | — |
| FY22 | — | $1 | — | — | $2.4B | — |
| FY21 | — | $0.32 | — | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|
| Revenue | $1.2B | $2.4B | $3.1B | $4.1B | $5.3B |
| YoY change | — | +107.6% | +28.5% | +31.4% | +29.3% |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q1 23 | Q2 23 | Q1 24 | Q2 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 |
|---|
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|
| Revenue | 1.2B | 2.4B | 3.1B | 4.1B | 5.3B |
| Cost of revenue | 979.2M | 2B | 2.7B | 3.6B | 4.5B |
| Gross profit | 187.3M | 400.7M | 447.1M | 507.7M | 780.3M |
| Gross margin | 16.1% | 16.5% | 14.4% | 12.4% | 14.8% |
| Research & development | — | — | — | — | — |
| Selling, general & administrative | 96.8M | 149M | 213.7M | 343.8M | 415.1M |
| Operating expenses | 96.8M | 149M | 213.7M | 343.8M | 415.1M |
| Operating income | 83.4M | 229.4M | 207.8M | 123.1M | 309.6M |
| Operating margin | 7.15% | 9.47% | 6.68% | 3.01% | 5.85% |
| Non-operating income, net | 3.3M | 3.2M | -536K | 22.8M | 3.2M |
| Pretax income | 81.4M | 207M | 157.3M | 101.6M | 284.4M |
| Income tax | 33.5M | 56.5M | 44.4M | 46.2M | 93M |
| Net income | 47.9M | 150.5M | 112.9M | 55.3M | 191.5M |
| Net margin | 4.11% | 6.21% | 3.63% | 1.35% | 3.62% |
| EBITDA | 93.9M | 254.9M | 232.9M | 178.7M | 368.5M |
| EPS | 0.32 | 1 | 0.75 | 0.38 | 1.23 |
| Diluted EPS | 0.32 | 1 | 0.75 | 0.38 | 1.22 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q1 23 | Q2 23 | Q1 24 | Q2 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 708.4M | 760.7M | 934.7M | 981.8M | 1.2B | 1.3B | 1.3B | 1.3B | 1.4B | 1.4B | 1.4B |
| Cost of revenue | 583.9M | 642.3M | 800M | 828M | 1B | 1.1B | 1.1B | 1.1B | 1.1B | 1.2B | 1.2B |
| Gross profit | 124.6M | 118.4M | 134.8M | 153.9M | 174.5M | 159.6M | 194M | 203.2M | 223.6M | 250.4M | 243.8M |
| Gross margin | 17.6% | 15.6% | 14.4% | 15.7% | 14.4% | 12.5% | 14.8% | 15.1% | 16.5% | 17.6% | 17.1% |
| Research & development | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 59.4M | 62.7M | 46.9M | 144.4M | 89.6M | 98.7M | 100.3M | 102.5M | 113.5M | 112.3M | 114.3M |
| Operating expenses | 59.4M | 62.7M | 46.9M | 144.4M | 89.6M | 98.7M | 100.3M | 102.5M | 113.5M | 112.3M | 114.3M |
| Operating income | 59.3M | 49.5M | 80M | 710K | 72M | 48.1M | 80.5M | 86.3M | 94.7M | 120M | 109.3M |
| Operating margin | 8.37% | 6.51% | 8.55% | 0.07% | 5.96% | 3.77% | 6.15% | 6.42% | 6.97% | 8.45% | 7.66% |
| Non-operating income, net | 440K | -2.6M | 8.5M | -3.9M | -1.5M | 1.5M | 2.5M | -1.4M | 701K | 125K | 2.5M |
| Pretax income | 49.1M | 31.6M | 73.1M | -12.4M | 61.2M | 42.7M | 78.6M | 76.3M | 86.8M | 113.7M | 105.8M |
| Income tax | 11.5M | 10.4M | 23.9M | -1.5M | 25M | 14.3M | 27.6M | 24M | 27M | 33.1M | 29.5M |
| Net income | 37.6M | 21.2M | 49.1M | -10.9M | 36.2M | 28.4M | 51M | 52.3M | 59.8M | 80.7M | 76.3M |
| Net margin | 5.31% | 2.79% | 5.26% | -1.11% | 3% | 2.22% | 3.89% | 3.89% | 4.4% | 5.68% | 5.35% |
| EBITDA | 65.6M | 53.1M | 88.3M | 5.6M | 83.4M | 62.3M | 96.1M | 99.2M | 110.8M | 138.2M | 132M |
| EPS | 0.25 | 0.14 | 0.33 | -0.07 | — | 0.18 | 0.33 | 0.33 | — | 0.51 | 0.48 |
| Diluted EPS | 0.25 | 0.14 | 0.33 | -0.07 | — | 0.17 | 0.31 | 0.32 | — | 0.5 | 0.47 |
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 | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| Market cap | — | — | — | 1.9B | 6B | 6.8B |
| Enterprise value | — | — | — | 5.3B | 9.3B | 9.8B |
| Shares outstanding | 150.2M | 150.2M | 150.2M | 146.7M | 156.2M | 156.2M |
| Metric | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| P/E | — | — | — | 34.7 | 31.3 | 24.2 |
| P/S | — | — | — | 0.47 | 1.13 | 1.18 |
| P/B | — | — | — | 2.69 | 6.3 | 5.89 |
| EV/EBITDA | — | — | — | 29.5 | 25.2 | 20.5 |
| EV/Sales | — | — | — | 1.29 | 1.75 | 1.76 |
| Earnings yield | — | — | — | 2.88% | 3.19% | 4.14% |
| FCF yield | — | — | — | 0.91% | 2.59% | 5.55% |
| PEG | — | — | — | — | — | 0.53 |
| Metric | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| Gross margin | 16.1% | 16.5% | 14.4% | 12.4% | 14.8% | 17.1% |
| Operating margin | 7.15% | 9.47% | 6.68% | 3.01% | 5.85% | 7.66% |
| Net margin | 4.11% | 6.21% | 3.63% | 1.35% | 3.62% | 4.85% |
| ROE | — | 219.2% | 111% | 7.73% | 20.1% | 27.9% |
| ROA | — | 6.11% | 3.21% | 1.06% | 3.43% | 4.6% |
| ROIC | — | 8.61% | 5.26% | 1.65% | 4.93% | 6.87% |
| Return on tangible assets | — | 6.43% | 3.34% | 1.08% | 3.51% | 4.88% |
| Metric | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| Current ratio | — | 1.06 | 1.58 | 0.96 | 1.07 | 0.91 |
| Quick ratio | — | 1.06 | 1.58 | 0.96 | 1.07 | 0.91 |
| Debt / equity | — | 28 | 27.6 | 4.89 | 3.64 | 3.05 |
| Debt / assets | — | 0.78 | 0.8 | 0.67 | 0.62 | 0.57 |
| Net debt / EBITDA | — | 7.33 | 11.7 | 18.7 | 8.89 | 6.43 |
| Interest coverage | 16.4 | 9.11 | 4.15 | 3.29 | 11 | 13.9 |
| Effective tax rate | 41.1% | 27.3% | 28.2% | 45.5% | 32.7% | 29.7% |
| Metric | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| Revenue per share | 7.77 | 16.1 | 20.7 | 27.9 | 33.9 | 35.3 |
| EPS (basic) | 0.32 | 1 | 0.75 | 0.38 | 1.23 | 1.23 |
| EPS (diluted) | 0.32 | 1 | 0.75 | 0.38 | 1.22 | 1.71 |
| Book value per share | — | 0.46 | 0.68 | 4.88 | 6.1 | 7.01 |
| FCF per share | -0.97 | 0.1 | -0.73 | 0.12 | 0.99 | 0.75 |
| Cash per share | — | 0.39 | 0.49 | 1.08 | 1.26 | 1.04 |
| Capex per share | 1.36 | 0.52 | 1.15 | 2.39 | — | — |
| Metric | FY21 | FY22 | FY23 | FY24 | FY25 | Current |
|---|---|---|---|---|---|---|
| Capex / revenue | 17.5% | 3.23% | 5.55% | 8.55% | — | — |
| Capex / operating cash flow | 643.3% | 128.4% | 181.7% | 186.2% | — | — |
| Payout ratio | 112.2% | 40.1% | 71.2% | 60.9% | 0% | 0% |
| Dividend yield | — | — | — | 1.75% | 0% | 0% |
| $1.2B |
| — |
| Q1 26 |
|---|
| Q2 26 |
|---|
| Revenue | $708.4M | $760.7M | $934.7M | $981.8M | $1.2B | $1.3B | $1.3B | $1.3B | $1.4B | $1.4B | $1.4B |
| YoY change | — | — | +31.9% | +29.1% | — | +36.6% | +33.3% | — | +12.4% | +11.2% | +9.07% |
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 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|
| Cash & short-term investments | 58.3M | 73.4M | 157.7M | 197M |
| Receivables | 370.9M | 547.8M | 641.8M | 628.1M |
| Inventory | — | — | — | — |
| Total current assets | 511.2M | 722.1M | 938.3M | 1.1B |
| Property, plant & equipment | 1.5B | 2.2B | 3.3B | 3.3B |
| Goodwill & intangibles | 123M | 130.6M | 134.1M | 136.1M |
| Total assets | 2.5B | 3.5B | 5.2B | 5.6B |
| Accounts payable | 110.6M | 140.9M | 175.1M | 192.2M |
| Short-term debt | 182.4M | 127.2M | 314.3M | 186.5M |
| Total current liabilities | 483.9M | 456.9M | 978.4M | 1B |
| Long-term debt | 1.7B | 2.7B | 3.2B | 3.3B |
| Total liabilities | 2.4B | 3.4B | 4.5B | 4.6B |
| Shareholders' equity | 68.7M | 101.7M | 715.7M | 952.4M |
| Total debt | 1.9B | 2.8B | 3.5B | 3.5B |
| Net debt | 1.9B | 2.7B | 3.3B | 3.3B |
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 | Q1 24 | Q2 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 81.2M | 73.4M | 157.7M | 287.5M | 294.2M | 355.7M | 197M | 248M | 164.5M |
| Receivables | 622.7M | 610.6M | 641.8M | 680.7M | 638.1M | 628.3M | 628.1M | 648M | 634.5M |
| Inventory | — | — | — | — | — | — | — | — | — |
| Total current assets | 831.7M | 800.6M | 938.3M | 1.1B | 1.1B | 1.1B | 1.1B | 1.1B | 962.4M |
| Property, plant & equipment | 2.4B | 2.3B | 3.3B | 3.4B | 3.4B | 3.4B | 3.3B | 3.3B | 3.3B |
| Goodwill & intangibles | 65.3M | 65.3M | 134.1M | 67.1M | 67.1M | 68.1M | 136.1M | 136.1M | 136.1M |
| Total assets | 3.9B | 3.9B | 5.2B | 5.5B | 5.5B | 5.6B | 5.6B | 5.7B | 5.7B |
| Accounts payable | 157M | 125.7M | 175.1M | 198.6M | 172M | 205.5M | 192.2M | 180.7M | 160.9M |
| Short-term debt | 130.5M | 129M | 314.3M | 296.6M | 297.2M | 258.1M | 186.5M | 192.3M | 163.4M |
| Total current liabilities | 531.5M | 468.1M | 978.4M | 1.1B | 1.2B | 1.2B | 1B | 1.1B | 1.1B |
| Long-term debt | 2.9B | 2.5B | 3.2B | 3.3B | 3.2B | 3.2B | 3.3B | 3.2B | 3.1B |
| Total liabilities | 3.7B | 3.3B | 4.5B | 4.7B | 4.7B | 4.7B | 4.6B | 4.6B | 4.5B |
| Shareholders' equity | 133.6M | 578.2M | 715.7M | 756.3M | 812.7M | 876.9M | 952.4M | 1B | 1.1B |
| Total debt | 3B | 2.7B | 3.5B | 3.6B | 3.5B | 3.5B | 3.5B | 3.4B | 3.3B |
| Net debt | 2.9B | 2.6B | 3.3B | 3.3B | 3.2B | 3.1B | 3.3B | 3.1B | 3.1B |
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 | FY21 | FY22 | FY23 | FY24 | FY25 |
|---|---|---|---|---|---|
| Net income | 47.9M | 150.5M | 112.9M | 55.3M | 191.5M |
| Depreciation & amortization | 7.2M | 22.3M | 25.6M | 40.8M | 55.7M |
| Stock-based compensation | — | — | — | 115.5M | 54.1M |
| Change in working capital | -33.5M | -125.6M | -62.3M | -17.1M | 7.4M |
| Operating cash flow | 31.7M | 61M | 95.1M | 187.9M | 404.2M |
| Capital expenditure | -203.8M | -78.2M | -172.8M | -349.8M | — |
| Investing cash flow | -219.5M | -78.2M | -174.7M | -446.2M | -20.5M |
| Dividends paid | -53.8M | -60.3M | -80.4M | -33.7M | 0 |
| Share repurchases | — | — | — | — | — |
| Financing cash flow | 182M | 12.3M | 129.6M | 117.5M | -69M |
| Net change in cash | -5.8M | -4.9M | 50M | -140.8M | 314.8M |
| Free cash flow | -146.2M | 14.4M | -109.1M | 17.5M | 155.1M |
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 | Q1 23 | Q2 23 | Q1 24 | Q2 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 | Q4 25 | Q1 26 | Q2 26 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income | 37.6M | 21.2M | 49.1M | -10.9M | 36.2M | 28.4M | 51M | 52.3M | 59.8M | 80.7M | 76.3M |
| Depreciation & amortization | 5.8M | 6.2M | 7.9M | 8.8M | 12.9M | 12.7M | 13.2M | 14.4M | 15.4M | 18.1M | 20.1M |
| Stock-based compensation | — | — | — | — | 12.3M | 12.2M | 13.6M | 12.5M | 15.7M | 20.3M | 25.8M |
| Change in working capital | 3.1M | -33.9M | -69.8M | -19.1M | -44.8M | -12.3M | -99.2M | 109.9M | 9M | -54.2M | -10.3M |
| Operating cash flow | 46.3M | -90K | 257K | -33.5M | 29M | 35.1M | 52.6M | 204.8M | -3.4M | 236.3M | 135.5M |
| Capital expenditure | -58M | -10.9M | -89.3M | -111.5M | -83.2M | -17.7M | — | — | — | — | — |
| Investing cash flow | -58M | -10.9M | -119.3M | -121.5M | -131.5M | -17.7M | -15.1M | -51K | -6M | -20.1M | -43.4M |
| Dividends paid | -18.5M | -25.2M | -17.5M | -16.2M | 0 | 0 | 0 | 0 | 0 | — | — |
| Share repurchases | — | — | — | — | — | — | — | — | — | — | — |
| Financing cash flow | 14.9M | -23.5M | 34.5M | -310.3M | 138.6M | -4.1M | -5M | -46.3M | -5.5M | -67.7M | -76.6M |
| Net change in cash | 3.2M | -34.6M | -84.6M | -465.3M | 36M | 13.4M | 32.5M | 158.4M | -14.9M | 148.6M | 15.6M |
| Free cash flow | 21.3M | -32M | -30.5M | -76.7M | -18.6M | 132.5M | 33.8M | 106.4M | -117.7M | 128M | 4.7M |