Cactus, Inc. (WHD)

Every figure below is the company's own, as filed. Nothing is estimated and nothing is smoothed — a period the filing does not support is left blank rather than drawn. Quarters are the company's own, counted from its financial year ending 12-31. Amounts in USD.

Revenue Quarterly

0 200M 400M 600M Q1 '17: 58.5M Q2 '17: 81.9M Q3 '17: 96M Q4 '17: 104.8M Q1 '18: 115.1M Q2 '18: 138.5M Q3 '18: 150.7M Q4 '18: 139.8M Q1 '19: 158.9M Q2 '19: 168.5M Q3 '19: 160.8M Q4 '19: 140.2M Q1 '20: 154.1M Q2 '20: 66.5M Q3 '20: 59.8M Q4 '20: 68.1M Q1 '21: 84.4M Q2 '21: 108.9M Q3 '21: 115.4M Q4 '21: 129.9M Q1 '22: 145.9M Q2 '22: 170.2M Q3 '22: 184.5M Q4 '22: 187.8M Q1 '23: 228.4M Q2 '23: 305.8M Q3 '23: 287.9M Q4 '23: 274.9M Q1 '24: 274.1M Q2 '24: 290.4M Q3 '24: 293.2M Q4 '24: 272.1M Q1 '25: 280.3M Q2 '25: 273.6M Q3 '25: 264M Q4 '25: 261.2M Q1 '26: 388.3M Q2 '26: 449.5M Q3 '17 Q4 '18 Q1 '20 Q2 '21 Q3 '22 Q4 '23 Q1 '25 Q2 '26

Gross Profit Quarterly

0 60M 120M 180M Q1 '24: 105.3M Q2 '24: 113.9M Q3 '24: 114.3M Q4 '24: 102.9M Q1 '25: 107.7M Q2 '25: 100M Q3 '25: 97.1M Q4 '25: 94.6M Q1 '26: 111.6M Q2 '26: 149.7M Q2 '24 Q4 '24 Q2 '25 Q4 '25 Q2 '26

Revenue minus cost of sales. This filer tags no gross profit of its own..

Operating Income Quarterly

0 30M 60M 90M Q1 '17: 10M Q2 '17: 22.1M Q3 '17: 28.1M Q4 '17: 28.7M Q1 '18: 35.2M Q2 '18: 46.5M Q3 '18: 52.1M Q4 '18: 43.9M Q1 '19: 48.5M Q2 '19: 51.5M Q3 '19: 47.1M Q4 '19: 36.1M Q1 '20: 40.2M Q2 '20: 8.9M Q3 '20: 12.6M Q4 '20: 8.4M Q1 '21: 11.6M Q2 '21: 17.3M Q3 '21: 20.8M Q4 '21: 25.7M Q1 '22: 31M Q2 '22: 44.2M Q3 '22: 51.3M Q4 '22: 48.2M Q1 '23: 49.7M Q2 '23: 48.5M Q3 '23: 87.6M Q4 '23: 78.6M Q1 '24: 62.5M Q2 '24: 79.8M Q3 '24: 76.8M Q4 '24: 70.5M Q1 '25: 68.6M Q2 '25: 60.8M Q3 '25: 61.2M Q4 '25: 59.9M Q1 '26: 49.5M Q2 '26: 83.6M Q3 '17 Q4 '18 Q1 '20 Q2 '21 Q3 '22 Q4 '23 Q1 '25 Q2 '26

Net Income Quarterly

0 20M 40M 60M Q1 '17: 4.9M Q2 '17: 16.6M Q3 '17: 22.3M Q4 '17: 22.8M Q1 '18: 3.8M Q2 '18: 12.3M Q3 '18: 18.7M Q4 '18: 16.9M Q1 '19: 26.8M Q2 '19: 21.4M Q3 '19: 19.3M Q4 '19: 18.1M Q1 '20: 19M Q2 '20: 6M Q3 '20: 6.2M Q4 '20: 3.2M Q1 '21: 11.6M Q2 '21: 10.4M Q3 '21: 12.6M Q4 '21: 15M Q1 '22: 20.6M Q2 '22: 27.1M Q3 '22: 31.4M Q4 '22: 31M Q1 '23: 42.9M Q2 '23: 24.8M Q3 '23: 52.6M Q4 '23: 48.9M Q1 '24: 39M Q2 '24: 49.8M Q3 '24: 49.9M Q4 '24: 46.7M Q1 '25: 44.2M Q2 '25: 40.3M Q3 '25: 41.6M Q4 '25: 39.8M Q1 '26: 32.9M Q2 '26: 49M Q3 '17 Q4 '18 Q1 '20 Q2 '21 Q3 '22 Q4 '23 Q1 '25 Q2 '26

Cost of Revenue Quarterly

0 150M 300M 450M Q1 '24: 168.8M Q2 '24: 176.5M Q3 '24: 178.9M Q4 '24: 169.2M Q1 '25: 172.6M Q2 '25: 173.6M Q3 '25: 166.8M Q4 '25: 166.6M Q1 '26: 276.8M Q2 '26: 299.8M Q2 '24 Q4 '24 Q2 '25 Q4 '25 Q2 '26

Operating Cash Flow Quarterly

0 50M 100M 150M Q1 '17: 5.9M Q2 '17: 491K Q3 '17: 13.1M Q4 '17: 15.2M Q1 '18: 38.6M Q2 '18: 42.1M Q3 '18: 41.6M Q4 '18: 44.8M Q1 '19: 34.2M Q2 '19: 64.1M Q3 '19: 49.9M Q4 '19: 61.4M Q1 '20: 45.2M Q2 '20: 57.4M Q3 '20: 18.9M Q4 '20: 21.9M Q1 '21: 15.7M Q2 '21: 27.5M Q3 '21: 8.9M Q4 '21: 11.7M Q1 '22: 17.2M Q2 '22: 31M Q3 '22: 30.4M Q4 '22: 39.3M Q1 '23: 60.5M Q2 '23: 108.1M Q3 '23: 80.1M Q4 '23: 91.7M Q1 '24: 86.3M Q2 '24: 78M Q3 '24: 85.3M Q4 '24: 66.6M Q1 '25: 41.5M Q2 '25: 82.8M Q3 '25: 61.8M Q4 '25: 72.3M Q1 '26: 128.3M Q2 '26: 104.6M Q3 '17 Q4 '18 Q1 '20 Q2 '21 Q3 '22 Q4 '23 Q1 '25 Q2 '26

Free Cash Flow Quarterly

Nothing in this filer's XBRL supports this figure for the periods asked for, so there is nothing to draw. That is a gap in the filing, not a zero.

Shares Outstanding Quarterly

0 30M 60M 90M Q1 '18: 26.6M Q2 '18: 26.8K Q3 '18: 36.2K Q1 '19: 75.2M Q2 '19: 47.1M Q3 '19: 47.3M Q1 '20: 75.4M Q2 '20: 75.4M Q3 '20: 75.6M Q1 '21: 75.8M Q2 '18 Q1 '19 Q3 '19 Q2 '20 Q1 '21

Weighted average diluted, as the filer reports it for each period. An average cannot be added across periods, so this one is always shown per period the filer tagged rather than as a trailing year.

EPS TTM

0.00 0.70 1.40 2.10 Q3 '19: 1.89 Q4 '19: 1.83 Q1 '20: 1.64 Q2 '20: 1.30 Q3 '20: 1.02 Q3 '19 Q4 '19 Q1 '20 Q2 '20 Q3 '20

The filer's own published earnings a share for each quarter, four quarters added up. The company page divides trailing net income by the share count instead, which lands within about 1% of this and is not the same sum, so the two are named differently rather than presented as one figure.