← Back
McCamish Group Logo

The McCamish Group

2025

At The McCamish Group, I work as an Investment Analyst focused on public and private market opportunities across asset classes. My role involves sourcing investment ideas, conducting financial and operational diligence, and building models to support long-term capital allocation decisions. I contribute to portfolio monitoring and help evaluate fund managers, direct deals, and market themes through structured memos and deep research. The environment is lean and entrepreneurial, which has pushed me to work independently, think critically, and communicate clearly with senior stakeholders. This experience has deepened my understanding of how capital is deployed at the family office level and strengthened my ability to balance conviction with discipline.

Investment Analyst (Aug 2025 – Nov 2025)

Equity Research Code (EEIF Healthcare)

1# Healthcare / Biotech Comparable Companies Analysis
2# Emory Economics Investment Forum — EEIF Equity Research
3import pandas as pd
4import numpy as np
5
6def build_comps_table(tickers: list[str], metrics: list[str]) -> pd.DataFrame:
7    """
8    Build a comparable companies table for healthcare/biotech coverage.
9    Pulls key valuation multiples and operating metrics for peer benchmarking.
10    """
11    import yfinance as yf
12    rows = []
13    for ticker in tickers:
14        info = yf.Ticker(ticker).info
15        row = {
16            "Ticker": ticker,
17            "Market Cap ($B)": round(info.get("marketCap", 0) / 1e9, 2),
18            "EV/Revenue": info.get("enterpriseToRevenue"),
19            "EV/EBITDA": info.get("enterpriseToEbitda"),
20            "P/E (TTM)": info.get("trailingPE"),
21            "Rev Growth YoY": info.get("revenueGrowth"),
22            "Gross Margin": info.get("grossMargins"),
23        }
24        rows.append(row)
25    df = pd.DataFrame(rows).set_index("Ticker")
26    return df
27
28def dcf_stub(
29    fcf_base: float,
30    growth_rates: list[float],
31    terminal_growth: float = 0.03,
32    wacc: float = 0.10,
33) -> dict:
34    """
35    Simple DCF model stub for early-stage biotech.
36    Projects free cash flows, applies terminal value, discounts to PV.
37    """
38    fcfs = []
39    fcf = fcf_base
40    for g in growth_rates:
41        fcf *= (1 + g)
42        fcfs.append(fcf)
43
44    terminal_value = fcfs[-1] * (1 + terminal_growth) / (wacc - terminal_growth)
45    pv_fcfs = sum(f / (1 + wacc) ** (i + 1) for i, f in enumerate(fcfs))
46    pv_terminal = terminal_value / (1 + wacc) ** len(fcfs)
47
48    return {
49        "PV of FCFs": round(pv_fcfs, 2),
50        "PV of Terminal Value": round(pv_terminal, 2),
51        "Enterprise Value": round(pv_fcfs + pv_terminal, 2),
52    }
53
54# Example: EEIF Healthcare coverage universe
55healthcare_peers = ["UNH", "CVS", "HCA", "MOH", "CNC"]
56comps = build_comps_table(healthcare_peers, [])
57print(comps.to_string())
58
59# DCF stub for a biotech with negative FCF turning positive
60result = dcf_stub(
61    fcf_base=-50e6,
62    growth_rates=[0.5, 0.4, 0.3, 0.25, 0.2],
63    terminal_growth=0.03,
64    wacc=0.12,
65)
66print(result)
67

Focus Areas

Investment Research

  • Sourcing public and private market opportunities across asset classes
  • Financial and operational diligence on fund managers and direct deals
  • Building valuation models (DCF, comparable companies, LBO stubs)

Portfolio Monitoring

  • Evaluating fund managers and tracking portfolio performance
  • Monitoring market themes via structured investment memos
  • Identifying concentration risk and rebalancing opportunities

Capital Allocation

  • Supporting long-term deployment decisions with independent research
  • Communicating investment conviction clearly to senior stakeholders
  • Balancing risk-adjusted return targets with liquidity constraints