Hospitality Portfolio Optimization Methodology
The goal is to maximize Adjusted Hospitality Alpha (AHA) or Bay Score across a risk-controlled portfolio of hospitality investments. The framework seeks not merely high returns, but optimized risk-adjusted returns accounting for illiquidity, FX risk, market volatility, and operational leverage.
Each investment opportunity (ticker) is scored using a multi-factor framework integrating:
- Projected IRR
- Adjusted Hospitality Alpha (AHA)
- Bay Adjusted Sharpe (BAS)
- Bay Score (0–100)
- Volatility estimates
- Region classification and macro risk overlays
Scoring System: Bay Score
Bay Score synthesizes IRR, AHA, BAS, ESG scoring, co-investment quality, and forecast confidence into a single standardized metric. It is dynamically adjusted for macro shocks (via BMRI), operational execution risk, and liquidity stress indicators (LSD).
Methodology
Optimization is executed through a constrained convex quadratic program implemented in Python using CVXPY. The optimizer finds the global best solution without risk of local minima entrapment, adhering to institutional-grade portfolio construction standards.
Portfolio Constraints Include:
• Maximum 40 tickers per time horizon (5Y, 10Y, 15Y, 20Y)
• Maximum 10% allocation per single investment
• Total portfolio weight must equal 100%
• Volatility and liquidity caps enforced where data permits
Why Convex Optimization?
Unlike random weight simulation (Dirichlet), convex optimization guarantees:
• Mathematically provable optimality
• Full constraint compliance
• Scalability across thousands of scenarios
• Repeatability for quarterly rebalancing and LP reporting
Each optimization cycle produces:
- Portfolio weights for each investment across 4 horizons
- Clean CSV files for import into Bay Street Terminal
- Quadrant visualizations (AHA vs BAS mapping)
- Volatility-stress-adjusted exposure maps
Engineering Appendix
Sample Python (CVXPY) optimization snippet:
import cvxpy as cp
n = len(df_opt)
w = cp.Variable(n)
objective = cp.Maximize(AHA @ w)
constraints = [
cp.sum(w) == 1,
w >= 0,
w <= 0.10,
Volatility @ w <= max_volatility,
LSD @ w <= max_lsd,
]
prob = cp.Problem(objective, constraints)
prob.solve()
Future Enhancements
• Dynamic regional allocation constraints
• Objective blending (e.g., 60% Bay Score + 40% AHA)
• Rolling-window stress optimization to model regime shifts
Benchmark Methodology Integration
• STR Global RevPAR Index: TRI methodology for occupancy normalization
• NCREIF Hotel Index: Time-weighted return methodology for core real estate
• Cambridge Private Hospitality: Institutional-quality fund benchmarks
• FTSE Nareit Lodging/Resorts: Public REITs screen with liquidity filters
• MSCI GPFI: Core+ fund consistency benchmarking
• Dynamic Illiquidity Premium: Modeled across 1%–7.5% risk tiers
CoStar Methodology Integration & Forecast Notes
CoStar data is integrated through:
• Forecast Confidence Scoring
• STR sufficiency methodology compliance
• Bay Score projections under base, bull, and bear cases
Model transparency is preserved through method tagging and contributor safeguarding.
Copyright Notice and Legal Disclaimer
The materials provided by Bay Street Hospitality Fund I GP LLC are for informational purposes only and do not constitute investment advice or a solicitation. Past performance is not indicative of future results. Unauthorized reproduction prohibited. © 2025 Bay Street Hospitality Fund I GP LLC.
...