Phase Space AI

Valuation

Kodiak Gas Services [KGS]

Kodiak Gas Services [KGS] — Valuation

As of 2026-07-30. Spot $58.90. Two horizons, two instruments (per references/valuation.md).


COMPANY STATE — declared first

STATE B — cyclical / commodity-sensitive.

Test applied and evidence:

Dating the cycle position — required for State B, and this is the load-bearing sentence:

Kodiak is at or very near a cycle peak on the variable that matters. Fleet utilisation is 98.0%, up from 96.9%, the highest in the disclosed series; revenue per revenue-generating horsepower is rising +3.7% year over year; and management's prepared-remark mentions of "pricing" went from 0–1 per call through 2024 to 9 in 2025Q4. Tight capacity plus rising price is the definition of a peak, not a mid-point. I am therefore NOT mean-reverting the margin downward by reflex — the brief is explicit about that error — but I am refusing to extrapolate the +3.7% price term, and I set terminal revenue growth without it.

Consequence of State B: normalise on both revenue and margin; report trough / mid-cycle / peak earnings power; do not combine a peak margin with a peak growth rate.


TERMINAL MARGIN — 27.0%

Basis: the company's own TTM filed operating margin, reconciled through the FY2025 10-K opex bridge. Not a peer median, not an industry percentile, not max(own, sector).

TTM through Q1 2026, EDGAR OperatingIncomeLoss (filed):

$000
Q2 2025 99,730
Q3 2025 64,200
Q4 2025 (FY 340,010 − 9M 253,116) 86,894
Q1 2026 106,812
TTM EBIT 357,636
TTM revenue 1,324,217
TTM operating margin 27.01%

The opex bridge, from 10-K lines (FY2025)

line $000 % of revenue
Revenue 1,308,100 100.0%
Cost of operations — Contract Services (373,493) (28.55%)
Cost of operations — Other Services (106,432) (8.14%)
Depreciation and amortisation (276,185) (21.11%)
= Gross margin m_gross 551,990 42.20%
Selling, general and administrative (144,070) (11.01%)
Long-lived asset impairment (6,344) (0.49%)
Loss on sale of assets (61,566) (4.71%)
= Income from operations 340,010 25.99%

The bridge closes to the dollar: 42.20 − 11.01 − 0.49 − 4.71 = 25.99%

Hard constraint

m_EBIT,T (27.0%) ≤ m_gross,T (42.2%) ✓ — with 15.2pp of headroom, which is ample to fund an 11.0%-of-revenue SG&A base plus normalised disposal losses.

Why 27.0% and not something else

steady_state_check.py — what it flagged, and a defect in its input

python3 steady_state_check.py --ticker KGS --terminal-margin 0.270 --exit-multiple 7.50
output value
2020 margin → latest margin 31.6% → 31.7% (moved +0.1pp)
terminal assumed 27.0% (−4.7pp vs latest)
ROIC measured 8.3%
warranted multiple at measured ROIC 7.2x
exit multiple used vs warranted 1.04x
finding NO_SCALING_CONTAMINATION_DETECTED

The tool passes KGS, and its headline "latest margin" is wrong. It reads AV's operatingIncome, which for FY2025 gives 31.7% against a filed 26.0% (see the defect register). Against the filed figure the terminal margin is 0.0pp from the trailing actual, not −4.7pp. The verdict is unchanged — the tool's substantive finding, that a 7.2x warranted multiple is consistent with Kodiak's low ROIC, is correct and is the most useful thing it says.


THE IMPLIED-PATH TEST — the Valuation Criteria

Verified inputs (every one re-derived; screen inputs cross-checked)

input value source screen agreed?
Spot $58.90 screen record, 2026-07-30
Shares outstanding 88,771,027 10-Q cover page, dated 2026-05-06 ✓ exact
Market cap $5,228.6m
Cash $94,363k 10-Q balance sheet, 2026-03-31
Total debt $2,787,003k LongTermDebt, 2026-03-31 (no current portion tagged)
Net debt −$2,692,640k ✓ exact
Short-term investments none — tag absent, not omitted balance sheet
EV, lease-EXCLUSIVE $7,921.3m
Operating lease liability, non-current $42,122k 10-Q
Finance lease liability, non-current $3,775k 10-Q
EV, lease-INCLUSIVE (est.) ~$7,983m (+0.8%) current portions sit inside accrued liabilities and are not separately tagged
TTM revenue $1,324,217k four filed quarters, verified ✓ exact
TTM EBIT (filed) $357,636k EDGAR OperatingIncomeLoss screen 26.0% FY basis ✓
Splits noneSPLITS returned {"data": []} queried explicitly

EV basis statement, as required: the headline EV of $7,921.3m is LEASE-EXCLUSIVE. Adding disclosed non-current operating and finance lease liabilities and an estimated current portion takes it to roughly $7,983m, +0.8%. The difference does not move any conclusion here (EV/EBIT 22.15x → 22.32x); it is stated because a lease-exclusive anchor previously invalidated a seven-name ladder in this project.

Current multiples

lease-exclusive lease-inclusive
EV / TTM sales 5.98x 6.03x
EV / TTM EBIT (filed) 22.15x 22.32x
Net debt / TTM adj. EBITDA (~$690m) 3.9x

The instrument is a discounted cash flow — confirmed

Per the brief's CORZ/IREN warning: the instrument used here is ~/.claude/skills/investment-memo/assets/reverse_dcf.py, which discounts a five-year interim free cash flow stream plus a discounted terminal value at an explicit WACC and solves for the revenue CAGR that sets present value equal to today's EV. It is not an undiscounted required-revenue test. It was executed; the outputs below are its stdout, not a reconstruction.

--fcf-margin — sign and magnitude

Kodiak's free cash flow is POSITIVE, so the direction of the interim-FCF correction is the conservative one: omitting the flag would overstate required CAGR and could only suppress a true PASS, never manufacture a false one. It was supplied anyway.

Parameters

parameter value why
solved for revenue CAGR
horizon 5 years
WACC 8.5% investment-grade-adjacent industrial; Kodiak's own marginal debt cost is 7.6% pre-tax, ~5.5% after tax, and equity vol is 38.6%
terminal margin 27.0% derived above
exit multiple 7.50x EV/EBIT not a free parameter — see below
FCF margin +15.5% measured
revenue base $1,324.2m verified TTM

The exit multiple is determined by the identity, and this is where KGS breaks

EV_T / EBIT_T = (1−t)(1 − g/ROIC) / (WACC − g)

with t = 28.1% (FY2025 effective rate 31,884/113,472), g = 2.5%, WACC = 8.5%, and ROIC = 6.66% (NOPAT $257.5m ÷ invested capital $3,867.6m):

(0.719)(1 − 0.025/0.0666) / (0.085 − 0.025) = (0.719)(0.6246) / 0.060 = 7.49x

steady_state_check.py independently returns 7.2x at its own 8.3% ROIC. Two derivations, same neighbourhood.

Kodiak trades at 22.15x EV/EBIT against a 7.5x steady-state-warranted multiple — a 2.95x compression. The cause is not the margin and not the growth rate; it is that ROIC is 6.66% against a WACC of 8.5%, so terminal reinvestment consumes 37.5% of NOPAT to buy 2.5% growth that is worth less than it costs.

RESULT

  EV implied by today's price          7,921m   (6.0x current revenue)
  Held fixed              terminal margin=27.0%, exit multiple=7.5x
  Discount rate / horizon 8.5% over 5y

  >>> THE MARKET REQUIRES: revenue CAGR of 28.2%
Required revenue CAGR 28.2%
Demonstrated (organic, Q1'26 YoY) 4.9%
Demonstrated, Contract Services only 6.2%
Demonstrated, screen's acquired figure 22.7% (rejected — CSI Compressco)
MARGIN = demonstrated − required −23.3pp
Verdict FAIL

Sensitivity — over the exit multiple, never over scenario probabilities

exit multiple (EV/EBIT) required revenue CAGR margin vs 4.9% demonstrated
7.5x (identity-warranted) 28.2% −23.3pp
10x 22.1% −17.2pp
12x 18.2% −13.3pp
15x 13.6% −8.7pp
18x 9.9% −5.0pp
22.15x (today's own multiple, held flat) 5.9% −1.0pp
24.2x (screen's GROWTH_MATCHED anchor) 4.2% +0.7pp

The verdict is entirely the exit multiple, and the screen's is unsupportable. The screen used 24.2x, described as GROWTH_MATCHED from a comparator set of 223 names — which is a universe-wide median wearing a sector label, exactly the defect recorded in DATA_DEFECTS.md. At 24.2x the name passes by +13.8pp. At the identity-warranted 7.5x it fails by −23.3pp. A 37pp swing produced by one unexamined parameter.

The honest statement: KGS passes only if you assume its multiple never compresses. Holding today's 22.15x flat for five years, the required CAGR is 5.9% against 4.9% demonstrated — still −1.0pp, still a FAIL, but a narrow one. That is the most generous defensible framing and it is still not a pass.

Trough / mid-cycle / peak earnings power — required for State B

revenue operating margin EBIT EV/EBIT at today's $7,921m EV
Peak (today) $1,324.2m 27.0% $357.6m 22.15x
Mid-cycle — utilisation 93%, price flat $1,256.4m 24.5% $307.8m 25.7x
Trough — utilisation 88%, price −5% $1,129.0m 21.5% (the FY2024 actual) $242.7m 32.6x

The price paid against mid-cycle earnings power is 25.7x EV/EBIT. For a business earning a 6.7% ROIC, that is the finding.


THE 12-MONTH TARGET

Multiple anchor — the name's OWN history, percentile stated

Daily EV/Sales series built from Alpaca split-adjusted closes and as-known annual revenue (FY revenue stepping in at its 10-K filing date, so the series is not forward-looking), current share count and net debt held constant so the series measures multiple movement.

Window: 2024-03-07 → 2026-07-29, n = 600 trading days. This is Kodiak's entire life as a filer with a 10-K on record — it IPO'd in June 2023.

EV/Sales
min 4.64x
p10 4.91x
p25 5.06x
median 5.95x
p75 6.48x
p90 7.38x
max 8.35x
today (on true TTM revenue) 5.98x
today's percentile of own history 39th (series basis) / ~50th on the true-TTM basis

History length caveat, declared: 2.4 years and 600 observations. That is short, and the whole window sits inside a single up-cycle in Permian compression. It is not long enough to have observed a downturn multiple. I am using it because valuation.md requires the name's own history and forbids substituting a peer median — but the percentile should be read as "where in this cycle", not "where in the range of possible regimes."

NTM revenue base

$m
Consensus FY2026 revenue (AV EARNINGS_ESTIMATES) 1,515.1
Consensus FY2027 revenue 1,753.3
NTM (Aug'26–Jul'27), time-weighted 1,639.3
House NTM — Q1'26 annualised, grown 6% 1,450.0

Estimate revision direction — 90-day, from the built-in history

90d ago 30d ago 7d ago now 90-day change
FY2026 EPS 2.7054 2.6492 2.5557 2.6231 −3.0%
FY2027 EPS 3.3066 2.9668 2.9837 3.0832 −6.8%

Revisions are negative — the worst of the three names in this cluster. The last 7 days turned up (+2.6% on FY2026), which is a change of direction worth one quarter of observation, not a trend.

Target

At the 50th percentile of its own history, 5.95x EV/Sales, on consensus NTM revenue:

NTM revenue $1,639.3m
× 5.95x EV $9,753.9m
less net debt −$2,692.6m
equity value $7,061.3m
÷ 88.771m shares $79.54
to spot ($58.90) +35.0%

On the house NTM of $1,450m the same multiple gives $66.86, +13.5%.

The single largest swing factor is the consensus revenue path, and it is not evidenced. Consensus requires Q2'26 revenue of $383.0m against Q1'26 actual of $345.8m — a +10.8% sequential step in a business growing 4.9% year over year at 98% fleet utilisation. I report the consensus-based target as the method-compliant headline and the house figure as the number I would actually underwrite.

Leverage amplifies this: net debt is 34.0% of EV, so a 12% revenue miss becomes an 16% equity move.

No external professional target is on file for KGS in this project, so the sanity band is UNAVAILABLE rather than passed.


COMPARATOR SET — KGS only

Growth-matched, US-listed, contract compression and gas-handling infrastructure. Kept separate from the XYL and FSS sets.

ticker company why in set
USAC USA Compression Partners direct competitor; contract compression, same customers, same Permian concentration
AROC Archrock direct competitor; largest US contract compressor
CEIX / equivalent midstream small caps not used different asset

Declared limitation: the comparator set has n = 2 direct peers, both of which share Kodiak's exact cycle position, leverage profile and ROIC problem. A median of two co-cyclical peers is not an independent anchor — it is the same observation three times. This is why the exit multiple in the implied-path test is taken from the ROIC identity and not from the comparator set, and why the 12-month multiple is taken from Kodiak's own history. The comparator set is recorded for completeness and is not load-bearing on any number in this memo.

The screen's exit_multiple_peer_n: 223 is the defect this replaces.


SUMMARY

output value
Company state B — cyclical, dated AT/NEAR PEAK on 98.0% utilisation
Terminal margin 27.0%, = own TTM filed operating margin, bridge reconciles to the dollar
Exit multiple 7.5x EV/EBIT, identity-warranted at ROIC 6.66% / WACC 8.5% / g 2.5%
Implied compression from today's 22.15x −66.1%
Required revenue CAGR 28.2%
Demonstrated (organic) 4.9%
Valuation margin −23.3pp — FAIL
12-month target $79.54, +35.0% at the 50th percentile of its own 2.4-year multiple history (house base: $66.86, +13.5%)
Terminal value share of EV 71.4% — above 60%, so the reverse DCF is mandatory and primary
Evidence grade B− — filings are complete and clean; the multiple history is only 2.4 years and the comparator set is n = 2