XML 85 R68.htm IDEA: XBRL DOCUMENT
v3.22.0.1

Equity - Narrative (Details) - USD ($) |  |  |  |  |  |  | 1 Months Ended | 12 Months Ended | 47 Months Ended
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Sep. 13, 2021 | Jun. 17, 2021 | Mar. 12, 2021 | Mar. 09, 2021 | Mar. 21, 2019 | Mar. 20, 2019 | Dec. 31, 2019 | Mar. 31, 2019 | Dec. 31, 2021 | Dec. 31, 2020 | Dec. 31, 2019 | Dec. 31, 2021
Equity |  |  |  |  |  |  |  |  |  |  |  |
Other expense, net |  |  |  |  |  |  |  |  | $ 492,000 | $ (555,000) | $ 4,294,000 |
Dividends declared per common share (in dollars per share) |  |  |  |  |  |  |  |  | $ 0.38 | $ 0.36 | $ 0.09 |
Cactus LLC |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Increase to equity in non-controlling interest |  |  |  |  |  |  |  |  | $ 79,400,000 | $ 2,200,000 | $ 48,700,000 |
Cactus LLC | Cw Unit Holders Other Than Cactus Inc |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
CW redemptions (in shares) | 715,215 | 3,300,000 |  |  |  |  |  |  |  |  |  |
Proceeds form issuance of stock |  | $ 0 |  |  |  |  |  |  |  |  |  |
Common units transferred (in shares) | 228,878 | 944,093 |  |  |  |  |  |  |  |  |  |
March 2019 Secondary Offering |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
CW unit redemptions (in shares) |  |  |  |  |  | 8,500,000 |  |  |  |  |  |
March 2019 Secondary Offering | Other income (expense) |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Offering expense |  |  |  |  |  |  |  | $ 1,000,000 |  |  |  |
March 2021 Secondary Offering |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
CW unit redemptions (in shares) |  |  |  |  |  |  |  |  | 6,273,000 |  |  |
March 2021 Secondary Offering | Other income (expense) |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Proceeds form issuance of stock |  |  | $ 0 |  |  |  |  |  |  |  |  |
Offering expense |  |  |  |  |  |  |  |  | $ 400,000 |  |  |
Class A Common Stock |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Redemption ratio, shares of common stock per unit redeemed (in shares) |  |  |  |  |  |  |  |  | 1 |  |  | 1
Common stock, par value (in dollars per share) |  |  |  |  |  |  |  |  | $ 0.01 | $ 0.01 |  | $ 0.01
Number of shares canceled (in shares) |  |  |  |  |  |  |  |  | 700,000 | 300,000 | 800,000 |
Dividends declared per common share (in dollars per share) |  |  |  |  |  |  |  |  | $ 0.38 | $ 0.36 | $ 0.09 |
Dividends declared |  |  |  |  |  |  | $ 4,300,000 |  | $ 21,200,000 | $ 17,400,000 |  |
Dividend paid |  |  |  |  |  |  | $ 4,200,000 |  | $ 21,200,000 | $ 17,100,000 |  |
Class A Common Stock | Cactus LLC | Cw Unit Holders Other Than Cactus Inc |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Number of shares issued (in shares) | 715,215 | 3,300,000 |  |  |  |  |  |  |  |  |  |
Class A Common Stock | Cw Units Redeemed For Class Common Stock |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
CW redemptions (in shares) |  |  |  |  |  |  |  |  |  |  |  | 43,900,000
Class A Common Stock | March 2019 Secondary Offering |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Number of shares issued (in shares) |  |  |  |  | 8,500,000 |  |  |  |  |  |  |
Number of shares sold by certain other selling stockholders (in shares) |  |  |  |  |  | 26,000 |  |  |  |  |  |
Class A Common Stock | March 2021 Secondary Offering |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
CW redemptions (in shares) |  |  | 6,272,500 |  |  |  |  |  |  |  |  |
Number of shares issued (in shares) |  |  |  | 6,325,000 |  |  |  |  |  |  |  |
Price per share (in dollars per share) |  |  |  | $ 30.555 |  |  |  |  |  |  |  |
Number of shares sold by certain other selling stockholders (in shares) |  |  | 52,500 |  |  |  |  |  |  |  |  |
Class B Common Stock |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Common stock, par value (in dollars per share) |  |  |  |  |  |  |  |  | $ 0.01 | $ 0.01 |  | $ 0.01
Class B Common Stock | CW Unit Holder Redemption |  |  |  |  |  |  |  |  |  |  |  |
Equity |  |  |  |  |  |  |  |  |  |  |  |
Number of shares issued (in shares) |  |  |  |  |  |  |  |  | 700,000 | 300,000 | 800,000 |

X
- Definition Number of securities into which each warrant or right may be converted. For example, but not limited to, each warrant may be converted into two shares. + References No definition available. + Details
Name: | us-gaap_ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | instant

X
- Definition Aggregate dividends declared during the period for each share of common stock outstanding. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 505 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.3-04) -URI http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770 + Details
Name: | us-gaap_CommonStockDividendsPerShareDeclared
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration

X
- Definition Face amount or stated value per share of common stock. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(29)) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 + Details
Name: | us-gaap_CommonStockParOrStatedValuePerShare
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Amount of paid and unpaid common stock dividends declared with the form of settlement in cash. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 505 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.3-04) -URI http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770 + Details
Name: | us-gaap_DividendsCommonStockCash
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Amount of income (expense) related to nonoperating activities, classified as other. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 220 -SubTopic 10 -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03.9) -URI http://asc.fasb.org/extlink&oid=123367319&loc=SL114868664-224227 + Details
Name: | us-gaap_OtherNonoperatingIncomeExpense
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 15 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585 + Details
Name: | us-gaap_PaymentsOfDividends
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The cash outflow for cost incurred directly with the issuance of an equity security. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 15 -URI http://asc.fasb.org/extlink&oid=123570139&loc=d3e3291-108585 + Details
Name: | us-gaap_PaymentsOfStockIssuanceCosts
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The cash inflow from the additional capital contribution to the entity. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 230 -SubTopic 10 -Section 45 -Paragraph 14 -Subparagraph (a) -URI http://asc.fasb.org/extlink&oid=123570139&loc=d3e3255-108585 + Details
Name: | us-gaap_ProceedsFromIssuanceOfCommonStock
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition Per share amount received by subsidiary or equity investee for each share of common stock issued or sold in the stock transaction. + References No definition available. + Details
Name: | us-gaap_SaleOfStockPricePerShare
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | instant

X
- Definition Number of new stock issued during the period. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(29)) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 505 -SubTopic 10 -Section 50 -Paragraph 2 -URI http://asc.fasb.org/extlink&oid=123467817&loc=d3e21463-112644 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 505 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.3-04) -URI http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770 Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(28)) -URI http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682 + Details
Name: | us-gaap_StockIssuedDuringPeriodSharesNewIssues
Namespace Prefix: | us-gaap_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. + References No definition available. + Details
Name: | us-gaap_SubsidiarySaleOfStockLineItems
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of CW units redeemed during period. + References No definition available. + Details
Name: | whd_CommonUnitRedeemed
Namespace Prefix: | whd_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of CW units redeemed during period. + References No definition available. + Details
Name: | whd_CommonUnitsRedeemed
Namespace Prefix: | whd_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Common Units Transferred + References No definition available. + Details
Name: | whd_CommonUnitsTransferred
Namespace Prefix: | whd_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of increase to equity reclassified to the entity from non-controlling interest representing additional CW units acquired. + References No definition available. + Details
Name: | whd_EquityReclassifiedToEntityFromNoncontrollingInterest
Namespace Prefix: | whd_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition The number of shares of common stock canceled with the redemption of units. + References No definition available. + Details
Name: | whd_NumberOfSharesCanceled
Namespace Prefix: | whd_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of share sold by certain other Selling Stockholder, which shares were owned by them directly prior to the closing of the offering. The Company did not receive any proceeds from the sale of the common stock. + References No definition available. + Details
Name: | whd_SharesSoldByOtherSellingStockholders
Namespace Prefix: | whd_
Data Type: | xbrli:sharesItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | srt_OwnershipAxis=whd_CactusWellheadLlcAndItsSubsidiariesMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_OwnershipAxis=whd_CactusLLCMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_CounterpartyNameAxis=whd_CwUnitHoldersOtherThanCactusIncMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_SubsidiarySaleOfStockAxis=whd_SecondaryOfferingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=us-gaap_OtherNonoperatingIncomeExpenseMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_SubsidiarySaleOfStockAxis=whd_March2021SecondaryOfferingMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementClassOfStockAxis=us-gaap_CommonClassAMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_SubsidiarySaleOfStockAxis=whd_CwUnitsRedeemedForClassCommonStockMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_StatementClassOfStockAxis=us-gaap_CommonClassBMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | us-gaap_SubsidiarySaleOfStockAxis=whd_CWUnitHolderRedemptionMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |