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 25 | $0.01 | -$0.05 | -600.0% | — | $223M | — |
| Q1 25 | -$0.06 | $0.06 | +200.0% | — | $201.7M | — |
| Q4 24 | $0.09 | $0.05 | -44.4% | — | $222.1M | — |
| Q3 24 | $0.04 | $0.05 | +25.0% | — | $233.9M | — |
| Q2 24 | — | $0.04 | — | — | $197M | — |
| Q1 24 | -$0.05 | -$0.03 | +40.0% | — | $187.5M | — |
| Q4 23 | $0.02 | $0.01 | -50.0% | — | $203.8M | — |
| Q3 23 | $0.01 | $0.02 | +100.0% | — | $198.9M | — |
| Q2 23 | $0.2 | $0.13 | -35.0% | — | $190.1M | — |
| Q1 23 | $0.1 | $0.07 | -30.0% | — | $175.9M | — |
| Q4 22 | $0.09 | $0.14 | +55.6% | — | $174.8M | — |
| Q3 22 | $0.06 | $0.06 | 0.0% | — | $169.5M | — |
| Q2 22 | $0.15 | $0.22 | +46.7% | — | $187.6M | — |
| Q1 22 | $0.06 | $0.1 | +66.7% | — | $157.8M | — |
| Q4 21 | $0.11 | $0.09 | -18.2% | — | — | — |
| Q3 21 | $0.06 | $0.05 | -16.7% | — | $164.8M | — |
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 % |
|---|---|---|---|---|---|---|
| FY24 | — | -$0.29 | — | — | $840.9M | — |
| FY23 | — | -$0.17 | — | — | $766M | — |
| FY22 | — | -$0.09 | — | — | $687.8M | — |
| FY21 | — | -$0.42 | — | — | $612.1M | — |
| FY20 | — | $0.07 | — | — |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 |
|---|---|---|---|---|---|---|---|
| Revenue | $303.5M | $379.1M | $449.5M | $612.1M | $687.8M | $766M | $840.9M |
| YoY change | — | +24.9% | +18.6% | +36.2% | +12.4% | +11.4% | +9.77% |
Reported revenue per period; the line is the change from the same period a year earlier, on its own left axis.
| Period | Q4 22 |
|---|
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 |
|---|---|---|---|---|---|---|---|
| Revenue | 303.5M | 379.1M | 449.5M | 612.1M | 687.8M | 766M | 840.9M |
| Cost of revenue | 160.5M | 201.4M | 239.5M | 325.1M | 334.8M | 386M | 456.3M |
| Gross profit | 143.1M | 177.7M | 209.9M | 287M | 353M | 380M | 384.5M |
| Gross margin | 47.1% | 46.9% | 46.7% | 46.9% | 51.3% | 49.6% | 45.7% |
| Research & development | — | — | — | — | — | — | — |
| Selling, general & administrative | 123.9M | 151.9M | 176.6M | 231.7M | 241.8M | 254.2M | 253.6M |
| Operating expenses | 124.4M | 150.9M | 175.9M | 305.5M | 341.4M | 371.4M | 391.7M |
| Operating income | 11.8M | 19.1M | 26.1M | -26.7M | 2.6M | -3M | -22.4M |
| Operating margin | 3.9% | 5.03% | 5.81% | -4.36% | 0.37% | -0.4% | -2.66% |
| Non-operating income, net | 5.8M | -4.7M | -7.4M | 9.1M | 313K | -5.6M | 454K |
| Pretax income | 9M | 5.1M | 9.8M | -17.1M | 1.9M | -11.1M | -26.7M |
| Income tax | 3.5M | 3.4M | 3.4M | 15.5M | 11.2M | 5.9M | -1.8M |
| Net income | 5.5M | 1.7M | 6.3M | -32.6M | -9.3M | -17M | -24.9M |
| Net margin | 1.81% | 0.44% | 1.41% | -5.33% | -1.35% | -2.22% | -2.96% |
| EBITDA | 20.4M | 26.8M | 34.1M | -8.6M | 12.7M | 10.8M | -5.7M |
| EPS | 0.06 | 0.02 | 0.07 | -0.42 | -0.09 | -0.17 | -0.29 |
| Diluted EPS | 0.06 | 0.02 | 0.07 | -0.42 | -0.09 | -0.17 | -0.29 |
Revenue, gross profit, operating income, and net income per period.
Click a row to chart it; unreported figures show a dash.
| Period | Q4 22 | Q1 23 | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Revenue | 174.8M | 175.9M | 190.1M | 198.9M | 203.8M | 187.5M | 197M | 233.9M | 222.1M | 201.7M | 223M | 242.5M |
| Cost of revenue | 80M | 88.1M | 85.9M | 108.1M | 103.9M | 108M | 98.7M | 132.3M | 117.4M | 113.1M | 109.4M | 134M |
| Gross profit | 94.8M | 87.8M | 104.2M | 90.7M | 99.9M | 79.5M | 98.3M | 101.6M | 104.8M | 88.6M | 113.6M | 108.5M |
| Gross margin | 54.2% | 49.9% | 54.8% | 45.6% | 49% | 42.4% | 49.9% | 43.4% | 47.2% | 43.9% | 50.9% | 44.8% |
| Research & development | — | — | — | — | — | — | — | — | — | — | — | — |
| Selling, general & administrative | 88M | 63M | 67.9M | 61.9M | -22.4M | 62.1M | 65.5M | 60.2M | 65.8M | 81M | 78.8M | 71.4M |
| Operating expenses | 88M | 86.1M | 97.9M | 93.4M | 93.4M | 90.4M | 98.9M | 99.5M | 103.8M | 110.4M | 112.5M | 108M |
| Operating income | 5.4M | -852K | 3.5M | -5.8M | 3.4M | -14.3M | -4.4M | -1.8M | -3.1M | -28.9M | -2.8M | -3.4M |
| Operating margin | 3.07% | -0.48% | 1.84% | -2.92% | 1.65% | -7.65% | -2.22% | -0.77% | -1.39% | -14.3% | -1.28% | -1.4% |
| Non-operating income, net | -4.1M | 926K | — | -618K | — | 874K | — | 12K | 455K | -1.2M | 302K | -2M |
| Pretax income | 964K | -1.2M | 3.1M | -7.1M | -3.2M | -14.5M | -5.6M | -3.1M | -3.9M | -31.3M | -4.5M | -6.4M |
| Income tax | -684K | 2.6M | 3.5M | -2M | 2.5M | -2.3M | -161K | -69K | 723K | -7.7M | 193K | -898K |
| Net income | 1.6M | -3.8M | -462K | -5.1M | -5.7M | -12.2M | -5.4M | -3M | -4.6M | -23.5M | -4.7M | -5.5M |
| Net margin | 0.94% | -2.16% | -0.24% | -2.58% | -2.81% | -6.49% | -2.75% | -1.28% | -2.09% | -11.7% | -2.1% | -2.27% |
| EBITDA | 3.6M | 1.7M | 6.5M | -3.2M | 902K | -10.1M | -535K | 2.1M | 1.4M | -22.9M | 1.4M | -1.5M |
| EPS | 0.02 | -0.04 | -0.01 | -0.06 | -0.07 | -0.14 | -0.06 | -0.03 | -0.04 | -0.27 | -0.05 | -0.06 |
| Diluted EPS | 0.02 | -0.04 | -0.01 | -0.06 | -0.07 | -0.14 | -0.06 | -0.03 | -0.04 | -0.27 | -0.05 | -0.06 |
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 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| Market cap | — | — | — | — | 2.3B | — | 337.9M | 442.7M | 799.8M |
| Enterprise value | — | — | — | — | 2.2B | — | 365.4M | 477.3M | 834.5M |
| Shares outstanding | — | 83.7M | 83.7M | 83.7M | 75.5M | 84.2M | 84.5M | 86.8M | 86.8M |
| Metric | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| P/E | — | — | — | — | — | — | — | — | -32.3 |
| P/S | — | — | — | — | 3.75 | — | 0.44 | 0.53 | 0.95 |
| P/B | — | — | — | — | 5.95 | — | 0.76 | 1.02 | 1.97 |
| EV/EBITDA | — | — | — | — | -258.7 | — | 33.7 | -83.4 | -145.7 |
| EV/Sales | — | — | — | — | 3.65 | — | 0.48 | 0.57 | 0.99 |
| Earnings yield | — | — | — | — | — | — | — | — | -3.09% |
| FCF yield | — | — | — | — | -0.85% | — | -23% | -0.41% | -3.11% |
| PEG | — | — | — | — | — | — | — | — | -0.32 |
| Metric | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| Gross margin | — | 47.1% | 46.9% | 46.7% | 46.9% | 51.3% | 49.6% | 45.7% | 44.8% |
| Operating margin | — | 3.9% | 5.03% | 5.81% | -4.36% | 0.37% | -0.4% | -2.66% | -2.61% |
| Net margin | — | 1.81% | 0.44% | 1.41% | -5.33% | -1.35% | -2.22% | -2.96% | 45.7% |
| ROE | — | 5.09% | 1.48% | 9.86% | -8.45% | -2.16% | -3.84% | -5.72% | -5.72% |
| ROA | — | 1.76% | 0.49% | 1.65% | -6.25% | -1.52% | -2.45% | -3.58% | -3.58% |
| ROIC | — | 3% | 2.4% | 6.14% | -8.26% | 0% | -0.65% | -4.76% | -8.09% |
| Return on tangible assets | — | 160.8% | 6.68% | 8.37% | -15.5% | -3.06% | -4.44% | -6.44% | -7.08% |
| Metric | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| Current ratio | — | 2.05 | 2.07 | 1.86 | 2.76 | 2.56 | 2.22 | 2.04 | 1.85 |
| Quick ratio | — | 0.3 | 0.22 | 0.3 | 0.77 | 1.13 | 0.4 | 0.33 | 0.3 |
| Debt / equity | — | 1.27 | 1.33 | 3.43 | 0.04 | 0.05 | 0.13 | 0.11 | 0 |
| Debt / assets | — | 0.44 | 0.44 | 0.57 | 0.03 | 0.04 | 0.08 | 0.07 | 0.1 |
| Net debt / EBITDA | — | 6.57 | 5.45 | 6.21 | 7.25 | -7.23 | 2.54 | -6.05 | -2.58 |
| Interest coverage | — | 2.04 | 1.55 | 2.09 | -1.33 | 2.87 | -2.95 | -4.59 | -7.48 |
| Effective tax rate | — | 38.7% | 67.6% | 35.1% | 0% | 100% | 0% | 0% | 0% |
| Metric | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| Revenue per share | — | 3.63 | 4.53 | 5.37 | 8.11 | 8.17 | 9.07 | 9.69 | 9.69 |
| EPS (basic) | — | 0.06 | 0.02 | 0.07 | -0.42 | -0.09 | -0.17 | -0.29 | -0.29 |
| EPS (diluted) | — | 0.06 | 0.02 | 0.07 | -0.42 | -0.09 | -0.17 | -0.29 | -0.29 |
| Book value per share | — | 1.29 | 1.33 | 0.77 | 5.11 | 5.13 | 5.25 | 5.02 | 4.76 |
| FCF per share | — | -0.12 | 0.01 | 0.1 | -0.26 | 0.51 | -0.92 | -0.02 | 0.2 |
| Cash per share | — | 0.04 | 0.03 | 0.11 | 1.02 | 1.35 | 0.36 | 0.17 | 0.16 |
| Capex per share | — | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Metric | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 | Current |
|---|---|---|---|---|---|---|---|---|---|
| Capex / revenue | — | 0.02% | 0% | 0% | 0.01% | 0% | 0% | 0% | 0% |
| Capex / operating cash flow | — | -0.55% | 0% | 0% | -0.2% | 0% | -0% | 0% | 0% |
| Payout ratio | — | 0% | 0% | 0% | 0% | 0% | 0% | 0% | 0% |
| Dividend yield | — | — | — | — | 0% | — | 0% | 0% | 0% |
| $449.5M |
| — |
| FY19 | — | $0.02 | — | — | $379.1M | — |
| FY18 | — | $0.06 | — | — | $303.5M | — |
| Q1 23 |
|---|
| Q2 23 |
|---|
| Q3 23 |
|---|
| Q4 23 |
|---|
| Q1 24 |
|---|
| Q2 24 |
|---|
| Q3 24 |
|---|
| Q4 24 |
|---|
| Q1 25 |
|---|
| Q2 25 |
|---|
| Q3 25 |
|---|
| Revenue | $174.8M | $175.9M | $190.1M | $198.9M | $203.8M | $187.5M | $197M | $233.9M | $222.1M | $201.7M | $223M | $242.5M |
| YoY change | — | +11.4% | +1.34% | +17.3% | +16.5% | +6.58% | +3.65% | +17.6% | +9.03% | +7.59% | +13.2% | +3.68% |
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 | FY17 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 |
|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 18.4M | 3.7M | 2.1M | 9.4M | 76.8M | 113.5M | 30.1M | 15.1M |
| Receivables | 3.7M | 5.6M | 5.6M | 4.8M | 5M | 8.3M | 7.5M | 11.8M |
| Inventory | 71.9M | 106.7M | 136M | 169.1M | 247.1M | 230.1M | 360.3M | 370.6M |
| Total current assets | 99.5M | 125M | 152.2M | 202.3M | 343.3M | 413.8M | 440M | 442.9M |
| Property, plant & equipment | 31.8M | 33.4M | 27.5M | 28.6M | 22.8M | 39.4M | 92M | 89.1M |
| Goodwill & intangibles | 309.9M | 310.1M | 310.4M | 309.9M | 311.2M | 310.4M | 310.6M | 309.9M |
| Total assets | 286.3M | 313.6M | 335.1M | 385.8M | 521.9M | 614.8M | 694M | 696.5M |
| Accounts payable | 22.4M | 31.3M | 29.4M | 36.2M | 43.6M | 45.2M | 71.1M | 85.3M |
| Short-term debt | 3.8M | 5M | 8.3M | 15.8M | 5.4M | 5.2M | 8.2M | 9.3M |
| Total current liabilities | 44.3M | 61M | 73.6M | 108.7M | 124.4M | 161.9M | 198.1M | 217.6M |
| Long-term debt | 129M | 132.6M | 139.8M | 205.1M | 8.8M | 16.8M | 49.5M | 40.5M |
| Total liabilities | 182.7M | 205.4M | 223.8M | 321.4M | 136.2M | 183.1M | 250.5M | 260.9M |
| Shareholders' equity | 103.5M | 108.1M | 111.3M | 64.4M | 385.7M | 431.7M | 443.4M | 435.6M |
| Total debt | 132.8M | 137.5M | 148.1M | 220.9M | 14.1M | 22M | 57.7M | 49.8M |
| Net debt | 114.4M | 133.8M | 146M | 211.5M | -62.6M | -91.5M | 27.5M | 34.7M |
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 | Q4 22 | Q1 23 | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cash & short-term investments | 113.5M | 87.9M | 51.9M | 12.9M | 30.1M | 7.5M | 6.4M | 10.6M | 15.1M | 9M | 13.8M | 14.2M |
| Receivables | 8.3M | 6.1M | 7.6M | 6M | 7.5M | 6.9M | 15.5M | 14M | 11.8M | 9M | 9.4M | 13.6M |
| Inventory | 230.1M | 262.2M | 308M | 325.9M | 360.3M | 378.6M | 410M | 364.7M | 370.6M | 365M | 404.6M | 372.8M |
| Total current assets | 413.8M | 388.8M | 407.5M | 387.8M | 440M | 429.2M | 467.6M | 427.1M | 442.9M | 420M | 461.8M | 445.9M |
| Property, plant & equipment | 39.4M | 67.9M | 74.3M | 89.9M | 92M | 91.8M | 89.5M | 90.8M | 89.1M | 84.6M | 81.8M | 78.4M |
| Goodwill & intangibles | 310.4M | 155.1M | 155M | 155.4M | 310.6M | 155.2M | 310.1M | 154.9M | 309.9M | 155.3M | 155.2M | 155.3M |
| Total assets | 614.8M | 618.6M | 647.7M | 646.7M | 694M | 684.3M | 720.1M | 680.9M | 696.5M | 676.2M | 715.8M | 696.5M |
| Accounts payable | 45.2M | 35M | 43.3M | 36.5M | 71.1M | 73.8M | 103.3M | 49.9M | 85.3M | 45.6M | 71.9M | 69.7M |
| Short-term debt | 5.2M | 5.3M | 5.3M | 11.7M | 8.2M | 25M | 10.3M | 35.2M | 9.3M | 34.3M | 49.2M | 32.9M |
| Total current liabilities | 161.9M | 136.2M | 150.4M | 136.5M | 198.1M | 193.4M | 230.9M | 194.3M | 217.6M | 215.4M | 259.4M | 240.5M |
| Long-term debt | 16.8M | 39.4M | 40.1M | 50.8M | 49.5M | 47.4M | 45.1M | 42.8M | 40.5M | 40.2M | 38.8M | 37.1M |
| Total liabilities | 183.1M | 182.3M | 200.3M | 197.3M | 250.5M | 243.5M | 278.8M | 239.8M | 260.9M | 258.9M | 301.1M | 280.6M |
| Shareholders' equity | 431.7M | 436.3M | 447.4M | 449.4M | 443.4M | 440.8M | 441.3M | 441.1M | 435.6M | 417.3M | 414.7M | 415.9M |
| Total debt | 22M | 44.6M | 45.4M | 62.4M | 57.7M | 72.4M | 55.5M | 78M | 49.8M | 74.5M | 88M | 70M |
| Net debt | -91.5M | -43.2M | -6.5M | 49.5M | 27.5M | 64.9M | 49M | 67.4M | 34.7M | 65.5M | 74.1M | 55.8M |
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 | FY18 | FY19 | FY20 | FY21 | FY22 | FY23 | FY24 |
|---|---|---|---|---|---|---|---|
| Net income | 5.5M | 1.7M | 6.3M | -32.6M | -9.3M | -17M | -24.9M |
| Depreciation & amortization | 6.8M | 7.7M | 7.9M | 8.2M | 9.1M | 11.7M | 15.2M |
| Stock-based compensation | 320K | 152K | 65K | 75.3M | 52.3M | 30M | 18.4M |
| Change in working capital | -32.5M | -15.4M | -22.9M | -71.4M | -7.4M | -108M | -3.1M |
| Operating cash flow | -11.5M | 11.5M | 6M | -20.1M | 56.8M | -75M | 8.5M |
| Capital expenditure | 64K | 0 | 0 | 40K | 0 | 2K | 0 |
| Investing cash flow | 64K | 0 | 0 | 40K | 0 | 2K | 0 |
| Dividends paid | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Share repurchases | — | — | — | — | — | — | — |
| Financing cash flow | -8.3M | -23.4M | -82.3M | 81.2M | -5.4M | -4.1M | -7.9M |
| Net change in cash | -19.8M | -12M | -76.3M | 61.1M | 51.4M | -79.1M | 615K |
| Free cash flow | -10.4M | 522K | 8.1M | -19.6M | 42.9M | -77.8M | -1.8M |
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 | Q4 22 | Q1 23 | Q2 23 | Q3 23 | Q4 23 | Q1 24 | Q2 24 | Q3 24 | Q4 24 | Q1 25 | Q2 25 | Q3 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net income | 1.6M | -3.8M | -462K | -5.1M | -5.7M | -12.2M | -5.1M | -2.3M | -4.6M | -23.5M | -4.7M | -5.5M |
| Depreciation & amortization | 2.4M | 2.5M | 2.8M | 3.1M | 3.2M | 3.4M | 3.8M | 3.9M | 4.1M | 7.1M | 3.9M | 3.9M |
| Stock-based compensation | 9.6M | 9.5M | 9.7M | 6M | 4.7M | 6.3M | 4.9M | 2.8M | 4.2M | 4.5M | 5.1M | 3.5M |
| Change in working capital | 17.4M | -15.6M | -49.7M | -34.2M | -11.1M | -29.7M | -13.4M | 46.1M | -6.2M | 32M | -38.2M | 29.8M |
| Operating cash flow | 30.6M | -4.4M | -33.7M | -31.4M | -5.5M | -33.4M | -8.8M | 51.7M | -591K | 13.6M | -31.6M | 31.7M |
| Capital expenditure | 0 | — | — | — | 0 | — | — | — | 0 | — | — | — |
| Investing cash flow | 0 | — | — | — | 0 | — | — | — | 0 | — | — | — |
| Dividends paid | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Share repurchases | — | — | — | — | — | — | — | — | — | — | — | — |
| Financing cash flow | -1.4M | -1.4M | -1.1M | 4.3M | -1M | 14.7M | -16.9M | 22.5M | -2.2M | 23.1M | 13M | -17.9M |
| Net change in cash | 29.2M | -5.8M | -34.8M | -27.1M | -6.5M | -18.7M | -25.6M | 74.2M | -2.8M | 36.6M | -18.7M | 13.8M |
| Free cash flow | 21.7M | -25M | -34.4M | -42.5M | 24.1M | -36.4M | 17.1M | -16.5M | 34M | -28M | -6.4M | 18.2M |