From real-estate-analysis
Build a base underwriting view from OM, rent roll, T-12, and market data
npx claudepluginhub firststreetai/realestate-services-plugins --plugin real-estate-analysisThis skill uses the workspace's default tool permissions.
Build an institutional-grade underwriting package for an income-producing property.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Build an institutional-grade underwriting package for an income-producing property.
underwriting-standards -- pro forma construction, NOI projection, cash flow waterfallrent-roll-normalization -- rent roll cleanup, rollover, WALT, mark-to-marketvaluation-methods -- cap rate and DCF valuation with supportable rangemarket-analysis -- submarket context for rent/vacancy assumptionsdebt-sizing-hierarchy (capital-markets plugin) -- loan sizing if debt assumptions providedNone -- this is typically the first command in an acquisition workflow.
underwriting/proforma.xlsx, assumptions.json, summary.mdgoing_in_cap, stabilized_noi, unlevered_irr, levered_irr, price_per_sf, price_per_unitIf the user provided an OM, extract: property name, address, type, size (SF/units), year built, seller's asking price. If not, ask the user for these details.
Invoke rent-roll-normalization to clean and standardize the rent roll. Output: in-place rents, vacancy, rollover schedule, WALT, top-tenant concentration.
If a T-12 is provided, parse revenue and expense line items. Compare in-place revenue to rent roll. Flag discrepancies.
Invoke underwriting-standards to construct a multi-year pro forma. The skill will call validated Python functions in scripts/proforma.py for all calculations. Key outputs: revenue projection, expense projection, NOI, capital reserves, cash flow before/after debt.
CRITICAL: Do NOT calculate NOI, IRR, or cash flows by reasoning through the math. Invoke the Python functions.
If debt assumptions are provided, invoke debt-sizing-hierarchy to test DSCR, LTV, and debt yield constraints.
Invoke underwriting-standards which calls scripts/returns.py for IRR, equity multiple, and cash-on-cash yield. Do NOT compute these manually.
Invoke valuation-methods to produce a cap rate valuation and DCF valuation. Cross-check against per-SF/per-unit benchmarks.
Generate proforma.xlsx using the template in underwriting-standards/assets/proforma-template.xlsx. Fill named ranges with computed values. Include "Sources & Assumptions" tab.
Generate assumptions.json with all inputs and assumptions used.
Generate summary.md with executive summary of the underwriting.
Write all to the deal context directory and update _manifest.json.