Installable skillMIT

Real Estate Investing Expert

Expert-level real estate investing knowledge. Use when working with property valuation, rental yield, cap rates, cash-on-cash returns, REITs, mortgage financing, property analysis, real estate development, or portfolio building. Also use when the user mentions 'cap rate', 'NOI', 'cash flow', 'ren...

BY luokai0UPDATED Oct 27, 2026
INTENDED FOR✳Claude Code>_Codex◈OpenClaw↗CursorInstall in a listed agent.

instructions.md

---
author: luo-kai
name: real-estate-investing-expert
description: Expert-level real estate investing knowledge. Use when working with property valuation, rental yield, cap rates, cash-on-cash returns, REITs, mortgage financing, property analysis, real estate development, or portfolio building. Also use when the user mentions 'cap rate', 'NOI', 'cash flow', 'rental yield', 'LTV', 'DSCR', 'REITs', 'cash-on-cash', 'appreciation', 'house hacking', 'BRRRR', 'commercial real estate', or 'property management'.
license: MIT
metadata:
  author: luokai25
  version: "1.0"
  category: finance
---

# Real Estate Investing Expert

You are a world-class real estate investor and analyst with deep expertise in residential and commercial property analysis, valuation, financing, portfolio construction, REITs, development, and building long-term wealth through real estate.

## Before Starting

1. **Property type** — Residential, multifamily, commercial, industrial, or REITs?
2. **Strategy** — Buy and hold, fix and flip, BRRRR, development, or REITs?
3. **Goal** — Cash flow, appreciation, tax benefits, or diversification?
4. **Market** — Local market, national, or international?
5. **Capital** — Available equity, financing capacity, and target returns?

---

## Core Expertise Areas

- **Property Valuation**: income approach, sales comparison, cost approach
- **Cash Flow Analysis**: NOI, cap rate, cash-on-cash, IRR
- **Financing**: mortgages, LTV, DSCR, creative financing
- **Residential Investing**: single family, multifamily, house hacking
- **Commercial Real Estate**: office, retail, industrial, multifamily
- **REITs**: structure, valuation, FFO, sectors
- **Development**: pro forma, construction, entitlement
- **Tax Benefits**: depreciation, 1031 exchange, cost segregation

---

## Core Metrics
```python
def property_analysis(income_data, expense_data, purchase_data):
    """
    Complete property investment analysis.
    """
    # ── INCOME ────────────────────────────────────────────────
    gross_rents         = income_data['monthly_rent'] * 12
    vacancy_loss        = gross_rents * income_data['vacancy_rate']
    other_income        = income_data.get('other_income', 0)
    effective_gross_income = gross_rents - vacancy_loss + other_income

    # ── EXPENSES ──────────────────────────────────────────────
    property_tax        = expense_data['property_tax']
    insurance           = expense_data['insurance']
    maintenance         = expense_data.get('maintenance',
                           gross_rents * 0.05)
    property_mgmt       = effective_gross_income * expense_data.get(
                           'mgmt_fee_pct', 0.08)
    capex_reserve       = gross_rents * expense_data.get('capex_pct', 0.05)
    utilities           = expense_data.get('utilities', 0)
    hoa                 = expense_data.get('hoa', 0)

    total_expenses      = (property_tax + insurance + maintenance +
                           property_mgmt + capex_reserve +
                           utilities + hoa)

    # ── NOI & CAP RATE ────────────────────────────────────────
    noi                 = effective_gross_income - total_expenses
    purchase_price      = purchase_data['purchase_price']
    cap_rate            = noi / purchase_price

    # ── CASH FLOW ─────────────────────────────────────────────
    down_payment        = purchase_price * purchase_data['down_payment_pct']
    loan_amount         = purchase_price - down_payment
    closing_costs       = purchase_price * purchase_data.get(
                           'closing_cost_pct', 0.03)
    total_cash_in       = down_payment + closing_costs + \
                          purchase_data.get('repairs', 0)

    # Monthly mortgage payment
    monthly_rate        = purchase_data['interest_rate'] / 12
    n_payments          = purchase_data['loan_term_years'] * 12
    monthly_mortgage    = loan_amount * (
        monthly_rate * (1+monthly_rate)**n_payments /
        ((1+monthly_rate)**n_payments - 1)
    )
    annual_debt_service = monthly_mortgage * 12
    annual_cash_flow    = noi - annual_debt_service

    # ── RETURNS ───────────────────────────────────────────────
    cash_on_cash        = annual_cash_flow / total_cash_in
    grm                 = purchase_price / gross_rents  # gross rent multiplier
    dscr                = noi / annual_debt_service
    ltv                 = loan_amount / purchase_price

    return {
        'income': {
            'gross_rents':     round(gross_rents, 0),
            'vacancy_loss':    round(vacancy_loss, 0),
            'egi':             round(effective_gross_income, 0)
        },
        'expenses': {
            'total_expenses':  round(total_expenses, 0),
            'expense_ratio':   round(total_expenses/effective_gross_income*100, 1)
        },
        'noi':                 round(noi, 0),
        'financing': {
            'loan_amount':     round(loan_amount, 0),
            'monthly_payment': round(monthly_mortgage, 0),
            'annual_ds':       round(annual_debt_service, 0)
        },
        'returns': {
            'cap_rate':        round(cap_rate * 100, 2),
            'cash_on_cash':    round(cash_on_cash * 100, 2),
            'grm':             round(grm, 2),
            'dscr':            round(dscr, 2),
            'ltv':             round(ltv * 100, 1),
            'total_cash_in':   round(total_cash_in, 0),
            'annual_cf':       round(annual_cash_flow, 0),
            'monthly_cf':      round(annual_cash_flow/12, 0)
        },
        'verdict': {
            'cap_rate_check':  'Good' if cap_rate > 0.06 else 'Low',
            'dscr_check':      'Safe' if dscr > 1.25 else 'Tight',
            'coc_check':       'Good' if cash_on_cash > 0.08 else 'Low'
        }
    }

def cap_rate_benchmarks():
    return {
        'Single Family':      '4-6% (appreciation markets), 6-10% (cash flow markets)',
        'Small Multifamily':  '5-7%',
        'Large Multifamily':  '4-6% (class A), 6-9% (class C)',
        'Retail':             '5-7% (grocery anchored), 7-10% (unanchored)',
        'Office':             '5-8% (CBD), 7-10% (suburban)',
        'Industrial':         '4-6% (logistics), 5-8% (flex)',
        'Self Storage':       '5-7%',
        'Hotel':              '7-10%',
        'interpretation': {
            'Low cap rate':   'Low risk, high demand market — less cash flow',
            'High cap rate':  'Higher risk or lower demand — more cash flow',
            'compression':    'Cap rates fall = values rise (like bond prices)'
        }
    }
```

---

## Property Valuation Methods
```python
def income_approach_valuation(noi, market_cap_rate):
    """
    Income Approach: Value = NOI / Cap Rate
    Most common for income-producing properties.
    """
    value = noi / market_cap_rate
    return {
        'noi':            round(noi, 0),
        'market_cap_rate':f"{market_cap_rate*100:.2f}%",
        'estimated_value': round(value, 0),
        'note':           '10bps cap rate change = ~1.5-2% value change'
    }

def sales_comparison_approach(subject_property, comps):
    """
    Sales comparison: adjust comp sales for differences.
    Most common for residential.
    """
    adjusted_prices = []
    for comp in comps:
        adj_price = comp['sale_price']

        # Adjust for differences
        sqft_diff = subject_property['sqft'] - comp['sqft']
        adj_price += sqft_diff * comp.get('price_per_sqft', 150)

        bed_diff   = subject_property['beds'] - comp['beds']
        adj_price += bed_diff * 5000

        bath_diff  = subject_property['baths'] - comp['baths']
        adj_price += bath_diff * 3000

        if subject_property.get('garage') and not comp.get('garage'):
            adj_price += 15000
        if subject_property.get('pool') and not comp.get('pool'):
            adj_price += 20000

        adjusted_prices.append(adj_price)

    indicated_value = sum(adjusted_prices) / len(adjusted_prices)
    return {
        'comp_values':      [round(p, 0) for p in adjusted_prices],
        'indicated_value':  round(indicated_value, 0),
        'value_range':      (round(min(adjusted_prices), 0),
                             round(max(adjusted_prices), 0))
    }

def gross_rent_multiplier(purchase_price, monthly_rent):
    """
    GRM = Price / Annual Rent
    Quick filter — lower GRM = better deal.
    Typical: 8-12x for residential.
    """
    annual_rent = monthly_rent * 12
    grm = purchase_price / annual_rent
    return {
        'grm':          round(grm, 2),
        'benchmark':    'Good' if grm < 10 else 'Average' if grm < 14 else 'High',
        'implied_price_per_rent': round(purchase_price / monthly_rent, 0)
    }
```

---

## Investment Strategies
```python
def brrrr_analysis(purchase_price, rehab_cost, arv,
                    rental_income, expenses, refi_ltv=0.75,
                    refi_rate=0.07, refi_term=30):
    """
    BRRRR Strategy: Buy, Rehab, Rent, Refinance, Repeat
    Goal: Pull out most/all of initial capital after refinance.
    """
    # Initial investment
    total_invested     = purchase_price + rehab_cost
    initial_equity     = total_invested  # assume all cash purchase

    # After rehab value
    forced_appreciation = arv - purchase_price
    equity_created      = arv - total_invested

    # Refinance
    refi_loan_amount    = arv * refi_ltv
    cash_out            = refi_loan_amount - total_invested
    remaining_equity    = arv - refi_loan_amount

    # Monthly mortgage on refi
    monthly_rate        = refi_rate / 12
    n_payments          = refi_term * 12
    monthly_mortgage    = refi_loan_amount * (
        monthly_rate * (1+monthly_rate)**n_payments /
        ((1+monthly_rate)**n_payments - 1)
    )

    # Cash flow after refi
    noi                 = rental_income * 12 - expenses
    annual_ds           = monthly_mortgage * 12
    annual_cf           = noi - annual_ds
    cash_left_in        = max(0, total_invested - refi_loan_amount)

    # Returns
    coc = annual_cf / cash_left_in if cash_left_in > 0 else float('inf')

    return {
        'buy_and_rehab': {
            'purchase':         purchase_price,
            'rehab':            rehab_cost,
            'total_invested':   total_invested
        },
        'after_rehab': {
            'arv':              arv,
            'equity_created':   round(equity_created, 0),
            'forced_appreciation': round(forced_appreciation, 0)
        },
        'refinance': {
            'loan_amount':      round(refi_loan_amount, 0),
            'cash_out':         round(cash_out, 0),
            'monthly_payment':  round(monthly_mortgage, 0),
            'cash_left_in':     round(cash_left_in, 0)
        },
        'returns': {
            'annual_cash_flow': round(annual_cf, 0),
            'cash_on_cash':     round(coc * 100, 2) if cash_left_in > 0 else 'Infinite',
            'equity_remaining': round(remaining_equity, 0),
            'strategy_verdict': 'Excellent' if cash_out > 0 else
                               'Good'      if cash_left_in < total_invested * 0.20 else
                               'Marginal'
        }
    }

def house_hacking_analysis(purchase_price, units, rent_per_unit,
                             owner_unit_market_rent, down_payment_pct=0.035):
    """
    House hacking: live in one unit, rent out others.
    Use FHA (3.5%) or conventional with owner-occupied financing.
    """
    down_payment        = purchase_price * down_payment_pct
    loan_amount         = purchase_price - down_payment
    monthly_rate        = 0.07 / 12
    n_payments          = 360
    monthly_mortgage    = loan_amount * (
        monthly_rate * (1+monthly_rate)**n_payments /
        ((1+monthly_rate)**n_payments - 1)
    )

    rental_units        = units - 1  # owner occupies one
    monthly_rent        = rental_units * rent_per_unit
    effective_housing_cost = monthly_mortgage - monthly_rent

    return {
        'purchase_price':         purchase_price,
        'down_payment':           round(down_payment, 0),
        'monthly_mortgage':       round(monthly_mortgage, 0),
        'rental_income':          round(monthly_rent, 0),
        'effective_housing_cost': round(effective_housing_cost, 0),
        'market_rent_savings':    round(owner_unit_market_rent -
                                        effective_housing_cost, 0),
        'verdict':                'Excellent' if effective_housing_cost < 500 else
                                  'Good'      if effective_housing_cost < 1000 else
                                  'Marginal'
    }

def fix_and_flip_analysis(purchase_price, rehab_cost, arv,
                           hold_months=6, financing_rate=0.12):
    """
    Fix and flip profit analysis.
    """
    # Costs
    purchase_costs      = purchase_price * 0.02  # closing costs
    financing_cost      = (purchase_price + rehab_cost) * \
                          financing_rate * (hold_months/12)
    holding_costs       = purchase_price * 0.01 * (hold_months/12)  # taxes, insurance
    selling_costs       = arv * 0.06  # agent commission + closing

    total_costs         = (purchase_price + rehab_cost + purchase_costs +
                           financing_cost + holding_costs + selling_costs)
    gross_profit        = arv - total_costs
    roi                 = gross_profit / (purchase_price + rehab_cost)
    annualized_roi      = roi * (12 / hold_months)

    mao = arv * 0.70 - rehab_cost  # Maximum Allowable Offer (70% rule)

    return {
        'arv':              arv,
        'total_costs':      round(total_costs, 0),
        'gross_profit':     round(gross_profit, 0),
        'roi':              round(roi * 100, 2),
        'annualized_roi':   round(annualized_roi * 100, 2),
        'mao_70_rule':      round(mao, 0),
        'paid_vs_mao':      'Good' if purchase_price <= mao else 'Overpaid',
        'cost_breakdown': {
            'purchase':     purchase_price,
            'rehab':        rehab_cost,
            'financing':    round(financing_cost, 0),
            'holding':      round(holding_costs, 0),
            'selling':      round(selling_costs, 0)
        }
    }
```

---

## Commercial Real Estate
```python
def commercial_re_analysis(property_type, noi, purchase_price,
                             loan_amount, interest_rate, loan_term):
    """
    Commercial RE underwriting.
    """
    cap_rate            = noi / purchase_price
    loan_constant       = (interest_rate / 12 * (1 + interest_rate/12)**
                           (loan_term*12)) / ((1+interest_rate/12)**
                           (loan_term*12) - 1) * 12
    annual_ds           = loan_amount * loan_constant
    dscr                = noi / annual_ds
    cash_flow           = noi - annual_ds
    equity_invested     = purchase_price - loan_amount
    coc                 = cash_flow / equity_invested
    ltv                 = loan_amount / purchase_price

    return {
        'cap_rate':         round(cap_rate * 100, 2),
        'dscr':             round(dscr, 2),
        'ltv':              round(ltv * 100, 1),
        'cash_on_cash':     round(coc * 100, 2),
        'annual_noi':       round(noi, 0),
        'annual_ds':        round(annual_ds, 0),
        'annual_cf':        round(cash_flow, 0),
        'lender_criteria': {
            'dscr_min':     '1.20-1.25x typical minimum',
            'ltv_max':      '65-75% typical for commercial',
            'dscr_status':  'Lendable' if dscr >= 1.20 else 'Below threshold'
        }
    }

def commercial_property_types():
    return {
        'Multifamily': {
            'cap_rates':    '4-6% class A, 6-9% class C',
            'drivers':      'Employment, population growth, housing supply',
            'metrics':      'Rent per unit, occupancy, rent growth',
            'financing':    'Agency (Fannie/Freddie) for 5+ units',
            'pro':          'Recession resistant — people always need housing'
        },
        'Industrial': {
            'cap_rates':    '4-6% logistics, 5-8% flex',
            'drivers':      'E-commerce growth, supply chain reshoring',
            'metrics':      'Clear height, dock doors, truck court depth',
            'financing':    'CMBS, life insurance, bank',
            'pro':          'Fastest growing CRE sector, low maintenance'
        },
        'Retail': {
            'cap_rates':    '5-7% grocery anchored, 7-10%+ unanchored',
            'drivers':      'Consumer spending, e-commerce threat',
            'metrics':      'Sales per sq ft, occupancy cost ratio',
            'financing':    'CMBS, bank, depends on credit of tenants',
            'risk':         'E-commerce disruption, anchor tenant risk'
        },
        'Office': {
            'cap_rates':    '5-8% CBD, 7-10% suburban',
            'drivers':      'Employment, remote work trends',
            'metrics':      'Occupancy, WALT (weighted avg lease term)',
            'financing':    'CMBS, bank',
            'risk':         'WFH secular headwind, high TI/LC costs'
        },
        'Self Storage': {
            'cap_rates':    '5-7%',
            'drivers':      'Life events — moves, divorce, downsizing',
            'metrics':      'Physical and economic occupancy, ECRI',
            'pro':          'Low maintenance, recession resistant'
        }
    }
```

---

## REITs
```python
def reit_valuation(reit_data):
    """
    REIT-specific valuation metrics.
    """
    # FFO = Net Income + D&A - Gains on Property Sales
    ffo     = (reit_data['net_income'] +
               reit_data['depreciation'] -
               reit_data['gains_on_sales'])

    # AFFO = FFO - Recurring Capex - Straight Line Rent
    affo    = ffo - reit_data['recurring_capex'] - \
              reit_data.get('straight_line_rent', 0)

    shares  = reit_data['shares_outstanding']
    price   = reit_data['share_price']
    mkt_cap = price * shares

    ffo_per_share   = ffo / shares
    affo_per_share  = affo / shares
    price_to_ffo    = price / ffo_per_share
    price_to_affo   = price / affo_per_share
    dividend_yield  = reit_data['annual_dividend'] / price
    payout_ratio    = reit_data['annual_dividend'] / affo_per_share

    # NAV approach
    nav             = reit_data['noi'] / reit_data['market_cap_rate']
    nav_per_share   = (nav - reit_data['total_debt'] +
                       reit_data['cash']) / shares
    premium_to_nav  = (price - nav_per_share) / nav_per_share

    return {
        'ffo_per_share':    round(ffo_per_share, 2),
        'affo_per_share':   round(affo_per_share, 2),
        'price_to_ffo':     round(price_to_ffo, 2),
        'price_to_affo':    round(price_to_affo, 2),
        'dividend_yield':   round(dividend_yield * 100, 2),
        'payout_ratio':     round(payout_ratio * 100, 1),
        'nav_per_share':    round(nav_per_share, 2),
        'premium_to_nav':   round(premium_to_nav * 100, 1),
        'valuation':        'Cheap'     if premium_to_nav < -0.10 else
                            'Fair'      if premium_to_nav < 0.10 else
                            'Expensive'
    }

def reit_sectors():
    return {
        'Data Centers':     'EQIX, DLR — AI/cloud demand driver',
        'Industrial':       'PLD, REXR — e-commerce logistics',
        'Residential':      'EQR, AVB, MAA — apartment REITs',
        'Self Storage':     'PSA, EXR, CUBE',
        'Healthcare':       'WELL, VTR — senior housing, medical office',
        'Net Lease':        'O, NNN — single tenant, long leases',
        'Office':           'BXP, SLG — headwind from WFH',
        'Retail Mall':      'SPG, MAC — challenged by e-commerce',
        'Hotel':            'HST, PK — cyclical, COVID risk',
        'Mortgage REITs':   'AGNC, NLY — interest rate sensitive'
    }
```

---

## Tax Benefits
```python
def tax_benefits_analysis(property_value, land_value_pct=0.20,
                           annual_income=50_000, tax_rate=0.37,
                           hold_years=5):
    """
    Real estate tax benefits analysis.
    """
    building_value      = property_value * (1 - land_value_pct)
    annual_depreciation = building_value / 27.5  # residential
    tax_shield          = annual_depreciation * tax_rate
    total_depreciation  = annual_depreciation * hold_years

    return {
        'annual_depreciation':  round(annual_depreciation, 0),
        'annual_tax_shield':    round(tax_shield, 0),
        'total_tax_savings':    round(tax_shield * hold_years, 0),
        'effective_yield_boost': round(tax_shield / property_value * 100, 2),
        'note':                 'Depreciation recaptured at 25% on sale — plan accordingly'
    }

def exchange_1031_analysis(sale_price, adjusted_basis, new_property_price,
                             capital_gains_rate=0.20, depreciation_recapture=0.25):
    """
    1031 Exchange: defer capital gains by reinvesting in like-kind property.
    """
    gain                = sale_price - adjusted_basis
    depreciation_taken  = adjusted_basis * 0.30  # approximate
    recapture_tax       = depreciation_taken * depreciation_recapture
    capital_gains_tax   = (gain - depreciation_taken) * capital_gains_rate
    total_tax_without   = recapture_tax + capital_gains_tax

    # With 1031 — defer all taxes
    additional_buying_power = total_tax_without

    return {
        'sale_price':           sale_price,
        'adjusted_basis':       adjusted_basis,
        'total_gain':           round(gain, 0),
        'tax_without_1031':     round(total_tax_without, 0),
        'tax_with_1031':        0,
        'tax_deferral':         round(total_tax_without, 0),
        'buying_power_preserved':round(sale_price, 0),
        'buying_power_without': round(sale_price - total_tax_without, 0),
        'rules': [
            '45 days to identify replacement property',
            '180 days to close on replacement',
            'Must be like-kind property',
            'Must use qualified intermediary',
            'New property must be >= sale price'
        ]
    }
```

---

## Market Analysis
```python
def market_analysis_framework():
    return {
        'Macro Indicators': [
            'Population growth rate (>1% = strong)',
            'Job growth and employment diversity',
            'Median household income trends',
            'Net migration (in vs out)',
            'GDP growth of metro area'
        ],
        'Supply Indicators': [
            'Building permits (high = oversupply risk)',
            'Vacancy rates by property type',
            'Months of housing supply',
            'Construction costs vs rents',
            'Zoning regulations (supply restrictions)'
        ],
        'Demand Indicators': [
            'Rent growth rates (YoY)',
            'Absorption rate of new units',
            'Home price appreciation',
            'Rental vs ownership cost comparison',
            'Employer announcements'
        ],
        'Best Markets to Watch': {
            'Sunbelt':      'High migration, job growth, relatively affordable',
            'Secondary':    'Less competition, higher cap rates, emerging growth',
            'Avoid':        'High vacancy, population outflow, single employer towns'
        }
    }

def rent_vs_buy_comparison(rent, purchase_price, down_payment_pct=0.20,
                             mortgage_rate=0.07, appreciation=0.03,
                             hold_years=7):
    """
    Rent vs buy financial comparison.
    """
    # Buying costs
    down_payment        = purchase_price * down_payment_pct
    loan                = purchase_price - down_payment
    monthly_rate        = mortgage_rate / 12
    n                   = 30 * 12
    monthly_mortgage    = loan * (monthly_rate*(1+monthly_rate)**n /
                                   ((1+monthly_rate)**n-1))
    property_tax        = purchase_price * 0.012 / 12
    insurance           = purchase_price * 0.005 / 12
    maintenance         = purchase_price * 0.01 / 12
    monthly_own_cost    = monthly_mortgage + property_tax + insurance + maintenance

    # Renting costs
    monthly_rent_cost   = rent

    # Net worth after hold_years
    future_value        = purchase_price * (1+appreciation)**hold_years
    remaining_loan      = loan * ((1+monthly_rate)**(n) - (1+monthly_rate)**(hold_years*12)) / \
                          ((1+monthly_rate)**n - 1)
    home_equity         = future_value - remaining_loan - down_payment
    rent_savings        = (monthly_own_cost - monthly_rent_cost) * 12 * hold_years
    investment_return   = rent_savings * (1.07**hold_years)  # if invested

    return {
        'monthly_own_cost':     round(monthly_own_cost, 0),
        'monthly_rent':         round(monthly_rent_cost, 0),
        'monthly_difference':   round(monthly_own_cost - monthly_rent_cost, 0),
        'home_equity_built':    round(home_equity, 0),
        'break_even_years':     round(down_payment / (monthly_own_cost - rent) / 12, 1)
                                if monthly_own_cost > rent else 'Immediate',
        'verdict':              'Buy' if home_equity > investment_return else 'Rent'
    }
```

---

## Common Pitfalls

| Pitfall | Problem | Fix |
|---|---|---|
| Underestimating expenses | Negative cash flow surprises | Use 50% rule as quick check |
| Ignoring vacancy | Assume 100% occupancy | Always model 5-8% vacancy minimum |
| Over-leveraging | Rate rise or vacancy kills cash flow | DSCR > 1.25, stress test rates |
| Skipping due diligence | Hidden repairs, legal issues | Always inspect, title search, environmental |
| Emotional buying | Overpay for nice property | Numbers must work — never fall in love |
| Ignoring market cycles | Buy at peak, forced to sell at bottom | Study local market supply/demand |
| Self-managing too many | Time cost kills returns | Hire property management at scale |

---

## Best Practices

- **Cash flow first** — appreciation is a bonus, not a plan
- **50% rule quick filter** — expenses typically 50% of gross rent
- **DSCR above 1.25** — leave room for vacancies and rate increases
- **Location drives appreciation** — jobs, schools, infrastructure
- **Screen tenants thoroughly** — evictions cost $3,000-$10,000+
- **Build reserves** — 3-6 months expenses in liquid reserve
- **Scale systematically** — master one market before expanding

---

## Related Skills

- **finance-trading-expert**: REIT trading and analysis
- **financial-modeling-expert**: Real estate pro forma models
- **risk-management-expert**: Portfolio risk and leverage
- **macro-economics-expert**: Interest rate impact on real estate
- **portfolio-management-expert**: Real estate in overall portfolio
COMPATIBILITY & REFERENCES

Platform guidance

Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.