
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)
67Focus 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