Comfort Systems USA is one of the largest mechanical, electrical and plumbing (MEP) contractors in the United States — it designs, installs, services and maintains the heating, ventilation, air-conditioning, electrical, piping, controls and fire-protection systems that make large commercial, industrial and institutional buildings run. Founded in 1917 and headquartered in Houston, it operates a network of ~40+ regional operating companies through two segments, Mechanical and Electrical, with about 22,700 employees. Its edge is scale and self-perform capability: it can staff, prefabricate and execute enormous, complex MEP scopes — increasingly the power, cooling and electrical build-out of data centres and advanced-technology facilities — faster and more reliably than the fragmented field of local contractors it competes with. That reach and modular-construction depth is why hyperscale data-centre and industrial customers now make up roughly half its work, and why its order book has swelled to a record backlog. For a reader, think of it as the picks-and-shovels builder of the physical plumbing behind the AI and reshoring capex wave.
Lifecycle: Established / Mature-growth Industrials (Engineering & Construction services). FIX is decisively profitable and cash-generative, yet is growing like a much younger company — revenue +56% YoY in Q1 2026 to $2.87bn, TTM revenue ~$10.1bn, TTM diluted EPS $34.71. That combination of scale, profitability and an AI-capex demand surge is unusual and is the core of the quality case. We score it on the Industrials metric set (ROIC vs WACC, operating margin, backlog growth, balance sheet), not growth-stock metrics.
| Sub-signal | Reading | Score |
|---|---|---|
| Revenue trajectory | +56% YoY (Q1'26); tech/data-centre work now >50% of quarterly revenue (45% of FY25, up from 33%) | 92 |
| Profitability vs history | Gross margin 22% → 26.3%; operating margin ~17% (Industrials “strong” is >15%); net margin 12.1% | 85 |
| Cash generation | Op cash-flow/sales ~16.4%; FCF/OCF conversion 0.83; FCF ~$39/sh. FCF yield low (~2.3%) only because the price is high — the business itself gushes cash | 78 |
| Balance-sheet health | Net cash (debt/equity 0.12, debt/mktcap 0.07); interest coverage ~166×; current ratio 1.24. Debt/EBITDA well under 1× | 90 |
| ROIC & capital allocation | FMP ROE score 5/5, ROA 5/5; ROIC comfortably > WACC; disciplined tuck-in M&A + buybacks (share count 35.8M → 35.25M); dividend tiny (payout ~6%) | 84 |
Moat average ~57 — a scale-and-execution moat, not a structural monopoly. The Competitive-Environment read below sets the Switching-Cost and Cost-Advantage sub-scores directly.
Independent cross-check: FMP financial-health rating A- (overall 4/5), dragged only by its P/E (1/5) and P/B (1/5) sub-scores — i.e. the model agrees the business is excellent and the price is the problem, exactly our split.
r = 4.62% (10Y Treasury, per Donatien macro report 2026-07-14) + 4.5% ERP + 2.0% risk add-on = 11.12%. The risk add-on is +2.0% because beta is 1.66 (>1.6) — the anchor attaches the top add-on to a high-beta name even when Quality is high. Growth: consensus forward EPS growth ~25%, haircut 25% → ~19%, then floored to the Industrials cyclical cap of 10% for g_near; g_term = 3%. Two-stage warranted P/E ≈ 16.9×.| Lens | Reading | Score |
|---|---|---|
| Warranted-multiple anchor (40%) | Clean TTM P/E 49.3× ÷ warranted 16.9× = 2.92× → deep Expensive. On forward FY26 EPS ($43.63) it is 38.5× = 2.28× — still Expensive. Also ≥ the 23× Industrials guardrail line, Expensive on the floor alone. | 15 |
| Sector median (20%) | Engineering-&-construction peers (EME, APG, STRL) trade ~20–28× fwd; FIX at 38.5× fwd sits at the rich end even among fast growers | 28 |
| Own-history decile (15%) | Near the top of its own multi-year multiple range — the stock has re-rated from ~$514 to a $2,074 high on the AI-capex theme (now ~$1,681, ~19% off the peak) | 22 |
| PEG / growth-adjusted (10%) | Trailing PEG ~0.45 looks cheap, but that leans on a peak-cyclical +56% revenue print; forward PEG ~2.0 (FMP) is the honest read once growth normalises | 40 |
| Analyst consensus (15%) | Price $1,681 vs consensus target $2,015 (median $2,004; high $2,200, low $1,800) — ~20% below consensus, and grades 5 Buy / 4 Hold. This is the one lens offering support | 62 |
Implied-growth read (narrative colour): at $1,681 on ~$34.7 TTM EPS the market is embedding roughly a decade of ~20%+ compounding with no multiple give-back; our disciplined estimate (10% durable, cyclically-capped) warrants ~17×. The price embeds far more growth than the fundamentals conservatively support — the classic “great business, wrong price.”
Net: Valuation 22 (Expensive band). A Full/Expensive-band name is barred from STRONG BUY and, via Gate 3, capped at HOLD regardless of the driver tailwind.
Primary driver: the US non-residential construction capex cycle, dominated right now by data-centre & AI-infrastructure build-out (secondary: interest rates / reshoring industrial policy). Roughly half of FIX's revenue is now technology/data-centre work, so the company is a geared bet on hyperscaler and advanced-technology capital spending.
| Horizon | Read | Label |
|---|---|---|
| Historical (25%) | Backlog $5.2bn (2024) → $6.9bn (Q1'25) → $12.45bn (Q1'26); revenue +56% YoY. A powerful, sustained up-cycle. | Strong Tailwind |
| Current (50%) | Record backlog, record margins, tech >50% of Q1'26 revenue; Philly-Fed & Empire manufacturing surprised strongly high on 15–16 Jul; XLI capital flow “in” (real money). | Strong Tailwind |
| Forward (25%) | Multi-year visibility into 2027+, BUT concentration risk is now the swing factor — the macro report's armed tail names a “hyperscaler capex cut” as a trigger, and any AI-capex digestion hits FIX's biggest revenue line first. | Tailwind, watch concentration |
Weighted driver score ≈ 78 (Tailwind) — nominally amplification-eligible (≥65). But amplification is BLOCKED here: the base signal is HOLD on every horizon (Expensive valuation), and HOLD never amplifies; separately, an Expensive-band name is barred from STRONG BUY. So the strong driver cannot lift the signal — it only reinforces the quality case and defines the risk.
FIX is a new watchlist add and is not in the macro watchlist_forecast, so Economic Alignment is sourced by sector-map: GICS Industrials → XLI. The 2026-07-14 Donatien macro report scores XLI Short O, Medium O, Long SO, with real money flowing INTO Industrials across all three horizons (sector_capital_flow: real, in/in/in). Anchoring on the Medium horizon, the pressure is a TAILWIND (Short is also O). A trend-follower rides that flow, so the stance is Trend-Following with conviction ~72 (strength of a broad, multi-horizon tailwind). IMPORTANT: this Tailwind does NOT lift FIX's signal — the base signal is HOLD (Expensive valuation), HOLD never amplifies, and an Expensive-band name is barred from STRONG BUY. The economy is at FIX's back; the price is not. So no amplification was applied.
Source: sector-map · Macro report 2026-07-14
The tape is the classic pullback within a larger uptrend, but the pullback is active and unresolved right into the print. Monthly and weekly remain uptrends (RSI 73 monthly, 55 weekly); the daily has turned weakening (price below its 20/50-day averages, RSI 44.5, MACD negative) and hourly & 15-min are in strong downtrends — the tool's overall confluence reads bearish. Price is ~19% off the $2,074 high and fell 3.7% today.
Relative strength: mixed — a strong secular leader over 1yr, but a clear laggard over the last month as it corrects. Risk-reward: nearest daily support ~$1,621, then the weekly $1,500 shelf; a stop below $1,600 is ~1 ATR (daily ATR ~$105), so a defined-risk entry is possible — but with earnings in 7 days and the signal already HOLD on valuation, there is no timing edge to act on. Catalyst: Q2 earnings 23 Jul is a binary, high-variance event (Gate 2) — timing confidence capped at 45%.
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| 2026-07-23 | FIX Q2 2026 Earnings | High | EPS $10.45 / rev $2.99bn | Q1 EPS $10.51 | ✅ Yes | The single biggest near-term catalyst — backlog, tech-mix and margin durability; drives the next update |
| 2026-07-29–30 | FOMC Rate Decision | High | Hold (market-implied) | Hold | ⚠️ Medium | Rates set the discount rate on a long-duration re-rated name and the cost of the capex it builds |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| 2026-07-16 | Philadelphia Fed Mfg Index (Jul) | 41.4 | 13 | +218% above | Positive — industrial demand strong |
| 2026-07-15 | NY Empire State Mfg (Jul) | 15.6 | 8.8 | +77% above | Positive — manufacturing momentum |
| 2026-07-16 | Retail Sales MoM (Jun) | 0.5% | 0.5% | in-line | Neutral |
| 2026-07-16 | Pending Home Sales MoM (Jun) | -5.4% | -0.5% | big miss | Mild negative for broad non-res/res construction sentiment |
Industrials is a MEDIUM macro-sensitivity sector. The dominant event is FIX's own earnings on 23 Jul (7 days out) — high-impact and the scheduling trigger. Recent regional manufacturing surveys (Philly Fed +41.4, Empire +15.6) surprised strongly to the upside, confirming the industrial-demand backdrop, while housing data softened. The 29–30 Jul FOMC is a medium consideration — rates set the discount rate on this re-rated name.
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Monthly | Uptrend ↑ | Bullish | 73.4 | +, rising | S: $273 · R: $2,074 | Resist. breakout | 0.5× |
| Weekly | Uptrend ↑ | Bullish | 55.5 | +, flattening | S: $1,500 · R: $2,074 | Resist. breakout | 0.7× |
| Daily | Weakening → | Neutral | 44.5 | −, falling | S: $1,621 · R: $1,999 | Support breakdown | 0.7× |
| Hourly | Strong downtrend ↓ | Bearish | 39.6 | −, basing | S: $1,650 · R: $1,779 | Support breakdown | — |
| 15-min | Strong downtrend ↓ | Bearish | 45.6 | −, turning | S: $1,650 · R: $1,752 | — | — |
| Confluence: Bearish (short-term pullback within a larger uptrend) · MTF Score 42 | |||||||
Higher timeframes (monthly, weekly) are still in uptrends — the secular AI-capex leadership is intact — but the daily has rolled to weakening and both intraday frames are in strong downtrends, so the near-term confluence is bearish. This is a pullback within an uptrend, not a trend break. Key levels: daily support $1,621, then the weekly $1,500 shelf; a reclaim of the $1,800–$1,850 zone (the broken 20/50-day averages) would signal the pullback is over. With earnings on 23 Jul, the next real directional information arrives at the print.
FIX has re-rated hard on the data-centre/AI-capex theme (from ~$514 low) to a $2,074 high, and is now ~19% off that peak in an active pullback — daily below its 50-day average, higher timeframes still up. Levels are approximate, drawn from the multi-timeframe swing data.
Q2 beats, backlog pushes past $13bn, data-centre capex re-accelerates and the multiple holds. Price runs to the high analyst target $2,200 (+31%). Requires the AI-capex run-rate to keep compounding with no digestion — the entire bull case is the multiple NOT compressing.
The business keeps executing — mid-20s% EPS growth, backlog firm — but the multiple grinds sideways-to-lower as growth normalises off the peak-cyclical print. Price oscillates in a $1,600–$2,000 band and drifts toward the consensus zone (~$1,850–$2,000, +10–19%) over 6–12 months. Earnings power slowly grows into the valuation.
The de-rating case, and it is a big one: 49× clean (38.5× fwd) reverting toward the ~17–23× warranted/guardrail range is a ~42% de-rating — to the $980 area (a $900–$1,050 band) — even on flat earnings. The live trigger is a hyperscaler capex cut / AI-spend digestion hitting FIX's biggest (data-centre) revenue line, or skilled-labour/execution slippage on mega-projects and rivals' capacity catching up. The tape is already rolling over. This is idiosyncratic driver + valuation-compression risk, not the macro index tail.
Forecast: Fundamental: UNLIKELY without a ~40–50% drawdown — fair value (~$800–$985) is far below the tape; only a bear-scenario de-rate opens it. Technical: MODERATE, catalyst-dependent — a reclaim of the ~$1,850 50-day average or a clean higher-low bounce off $1,600–$1,621 could arm the pullback branch within 2–4 weeks, most plausibly around the 23 Jul print. Catalyst: DATE-CERTAIN — resolves 23 Jul; a >+5% guidance/backlog-raise gap on >2× volume would fire it. Net: the honest entry is confirmation-driven, and even then the Valuation-Ceiling gate keeps the signal at HOLD until the price and the warranted multiple converge.
Forecast: No exit trigger is live for a holder (the name isn't a buy here for a new position, but for an existing holder nothing forces a sale). Stop-loss at $1,500 is ~11% below spot and below the weekly shelf — unlikely absent an earnings miss; the 23 Jul print is the risk date. Thesis-invalidation is the one to watch: a backlog roll-over or an explicit hyperscaler capex cut would flip the driver and warrant an exit rather than a hold.
Position sizing not computed — no risk budget or portfolio role was specified for this watchlist add. The §12 Conviction Ladder reads Wait (0 of 3 entry paths met): there is no entry edge at $1,681, so size guidance is “watch, don't initiate.” Levels to watch instead: a reclaim of ~$1,850 (50-day) or a tested higher-low bounce off $1,600–$1,621, and the 23 Jul earnings reaction. Volatility context: daily ATR ~$105 (~6% of price); beta 1.66 — a 1% portfolio position carries ~1.66% market risk.
{
"ticker": "FIX",
"date": "2026-07-16",
"version": "v6",
"company": "Comfort Systems USA, Inc.",
"exchange": "NYSE",
"exchange_ticker": "NYSE:FIX",
"isin": "US1999081045",
"api_ticker": "FIX",
"currency": "USD",
"finder_ticker": "FIX",
"finder_exchange": "\ud83c\uddfa\ud83c\uddf8 NYSE",
"analysis_status": "starting",
"lifecycle_stage": "established",
"price_at_rating": 1680.6,
"signal_short": "HOLD",
"signal_medium": "HOLD",
"signal_long": "HOLD",
"primary_signal": "HOLD",
"short_entry_confirmed": false,
"short_cap_reason": "moot \u2014 no BUY at any horizon (base signal HOLD on Expensive valuation); Technical AND Catalyst entry groups both unmet, so short_entry_confirmed=false is recorded but no short-cap was applied",
"quality_score": 82,
"valuation_score": 22,
"timing_score": 34,
"driver_score": 78,
"driver_label": "Tailwind (amplification blocked \u2014 base HOLD)",
"economic_alignment_stance": "Trend-Following",
"economic_alignment_conviction": 72,
"economic_alignment_pressure": "Tailwind",
"economic_alignment_source": "sector-map",
"macro_report_date": "2026-07-14",
"warranted_multiple": 16.9,
"actual_multiple": 49.3,
"val_multiple_basis": "clean TTM P/E (fwd FY26 P/E 38.5\u00d7 = 2.28\u00d7 warranted)",
"warranted_ratio": 2.92,
"val_band": "expensive",
"discount_rate_r": 0.1112,
"risk_free_10y": 0.0462,
"g_near": 0.1,
"g_term": 0.03,
"nonop_pct_of_net_income": 2.4,
"clean_pe": 49.3,
"clean_peg": 2.0,
"competitive_share_trajectory": "improving (FIX gaining data-centre MEP share via prefab/self-perform scale; whole cohort growing)",
"competitive_threat_level": "moderate (skilled-labour scarcity; hyperscalers/GCs could self-perform or squeeze terms as field capacity catches up)",
"hard_gate_state": "Gate 2 (Earnings Event) triggered + Gate 3 (Valuation Ceiling) triggered \u2014 both cap at HOLD; Gates 1/4/5 and Severe-Driver clear",
"gates_triggered": [
"Earnings Event Risk (23 Jul)",
"Valuation Ceiling (49\u00d7 vs 16.9\u00d7 warranted; \u2265 23\u00d7 guardrail)"
],
"do_not_buy_triggers": [],
"dnb_checked": "Trigger 2(a) deep-expensive-alone: NOT fired (exceptional proven growth breaks the 'no growth' condition). Trigger 2(b)/AI-concentration systemic tail: NOT fired (clean-earnings large-cap, not a top-weight earnings-inflated mega-cap \u2014 tail does not materially apply).",
"entry_groups_met": 0,
"entry_conviction": "Wait",
"exit_groups_live": 0,
"exit_action": "Hold",
"fair_value_est": 900,
"stop_loss": 1500,
"target_price": 2004,
"scenario_base_target": 1850,
"scenario_bull_target": 2200,
"scenario_bear_target": 980,
"overall_confidence": 45,
"next_update_date": "2026-07-24",
"next_update_basis": "earnings 2026-07-23 +1 trading day",
"next_check_date": "2026-07-24"
}
First report for FIX — a new watchlist add promoted from the Stock-Finder bench (B4b) to test the Industrials × US grid cell. The read: an exceptional business (backlog +81% YoY, margins expanding, clean earnings, net cash) at a demanding price (49× clean / 38.5× fwd P/E vs a ~17× warranted multiple). HOLD on all three horizons; no BUY, so it does NOT fill the grid cell's live-Short-BUY slot.