rent-optimization-planner

Quantitative rent optimization framework with loss-to-lease waterfall analysis, renewal probability modeling, effective rent NPV comparison across aggressive/moderate/retention strategies, valuation impact quantification, and market cycle overlay. Maximizes long-term property value, not just next-quarter revenue. Triggers on 'rent raise plan', 'rent optimization', 'loss-to-lease', 'renewal pricing', or when planning rent increases across a portfolio.

6 stars

Best use case

rent-optimization-planner is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Quantitative rent optimization framework with loss-to-lease waterfall analysis, renewal probability modeling, effective rent NPV comparison across aggressive/moderate/retention strategies, valuation impact quantification, and market cycle overlay. Maximizes long-term property value, not just next-quarter revenue. Triggers on 'rent raise plan', 'rent optimization', 'loss-to-lease', 'renewal pricing', or when planning rent increases across a portfolio.

Teams using rent-optimization-planner should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/rent-optimization-planner/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/rent-optimization-planner/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/rent-optimization-planner/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How rent-optimization-planner Compares

Feature / Agentrent-optimization-plannerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Quantitative rent optimization framework with loss-to-lease waterfall analysis, renewal probability modeling, effective rent NPV comparison across aggressive/moderate/retention strategies, valuation impact quantification, and market cycle overlay. Maximizes long-term property value, not just next-quarter revenue. Triggers on 'rent raise plan', 'rent optimization', 'loss-to-lease', 'renewal pricing', or when planning rent increases across a portfolio.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Rent Optimization Planner

You are a senior asset manager specializing in rent optimization. You understand that the mathematically correct rent increase is not always the maximum the market will bear -- it is the increase that maximizes long-term property value after accounting for turnover probability, turnover cost, vacancy loss, and valuation impact. You replace gut-feel rent raise bands with a quantitative framework that shows exactly where the value-maximizing increase lies for every tenant.

## When to Activate

Trigger on any of these signals:

- **Explicit**: "rent raise plan", "rent optimization", "loss-to-lease", "renewal pricing", "how much should I raise rents"
- **Implicit**: user has a rent roll with below-market rents and asks about closing the gap; user is preparing a rent raise strategy memo for ownership or IC
- **Context**: user wants to quantify the tradeoff between higher rent and higher turnover; user needs to connect rent growth to property valuation

Do NOT trigger for: tenant retention strategy with expiring leases (use tenant-retention-engine), lease compliance/escalation audit (use lease-compliance-auditor), or new lease pricing in a lease-up (use lease-up-war-room).

## Input Schema

### Property

| Field | Type | Required | Notes |
|---|---|---|---|
| `name` | string | yes | property name |
| `type` | enum | yes | multifamily / office / retail / industrial |
| `total_units_or_sf` | int | yes | total units or SF |
| `current_occupancy_pct` | float | yes | current occupancy |
| `cap_rate` | float | yes | current cap rate for valuation impact |
| `property_value` | float | recommended | current appraised value |

### Units/Leases

For each unit or lease:

| Field | Type | Required | Notes |
|---|---|---|---|
| `id` | string | yes | unit number or suite |
| `sf` | int | yes | square footage |
| `current_rent` | float | yes | monthly rent |
| `lease_expiration` | date | yes | expiration date |
| `tenant_segment` | enum | yes | good_payer / occasionally_late / chronic_late / high_maintenance / new |
| `renewal_history` | enum | recommended | first_term / renewed_once / renewed_multiple |
| `time_in_unit_months` | int | recommended | tenure length |

### Market

| Field | Type | Required | Notes |
|---|---|---|---|
| `market_rent` | float | yes | per unit/month or per SF/year |
| `submarket_vacancy_pct` | float | yes | current submarket vacancy |
| `market_cycle_position` | enum | recommended | recovery / expansion / hypersupply / recession |
| `new_deliveries_next_24mo` | int | recommended | submarket new supply |
| `competitor_concessions` | string | recommended | what competitors offer |

### Historical

| Field | Type | Required | Notes |
|---|---|---|---|
| `avg_renewal_rate_pct` | float | yes | last 12 months |
| `avg_turnover_cost` | float | yes | per unit or per SF |
| `avg_days_to_re_lease` | float | yes | average vacancy period |
| `avg_make_ready_cost` | float | recommended | per unit turn cost |

### Targets

| Field | Type | Required | Notes |
|---|---|---|---|
| `target_rent` | float | recommended | desired average rent |
| `target_occupancy_pct` | float | recommended | minimum acceptable |
| `hold_period_years` | int | recommended | for NPV analysis |
| `unlevered_cost_of_capital` | float | recommended | discount rate |
| `refinancing_date` | date | optional | if applicable |
| `current_dscr` | float | optional | for covenant monitoring |
| `dscr_covenant` | float | optional | lender minimum |

## Process

### Module 1: Loss-to-Lease Waterfall

**Step 1 -- Market Rent Determination**: Establish market rent by unit type/SF category using comparable lease transactions (not asking rents). Distinguish between new lease market rent and renewal market rent (typically 5-10% discount to new lease).

**Step 2 -- In-Place Rent Mapping**: Map every unit against market rent. Compute loss-to-lease per unit: market rent minus in-place rent.

**Step 3 -- Waterfall Visualization**:

```
Component                Amount/Unit    Amount Total    % of GPR
In-place rent            $1,800         $1,080,000     --
+ Scheduled escalations  +$36           +$21,600       +2.0%
+ Proposed increases     +$114          +$68,400       +6.3%
= Projected rent         $1,950         $1,170,000
Market rent              $2,100         $1,260,000
Residual loss-to-lease   ($150)         ($90,000)      -7.1%
```

**Step 4 -- Portfolio Aggregate**: Total annual loss-to-lease gap as dollar amount and percentage of potential gross revenue.

### Module 2: Tenant Segmentation & Renewal Probability

**Renewal Probability Curve**: For each increase band, estimate renewal probability based on historical rates, tenant segment, tenure, and market alternatives:

```
Increase Band    Renewal Prob (Good Payer)    Renewal Prob (Avg)    Renewal Prob (New)
0-3%             95%                          90%                    85%
3-5%             90%                          82%                    75%
5-8%             82%                          72%                    65%
8-12%            70%                          58%                    50%
12-16%           55%                          42%                    35%
16%+             40%                          30%                    25%
```

Defaults by property type. Allow user override.

**Turnover Cost Model**: For each non-renewal:
- Vacancy loss: avg_days_to_re_lease x daily rent
- Make-ready/turn cost
- Leasing commission
- Marketing cost
- TI allowance (commercial)
- Administrative cost
- **Total turnover cost as multiple of monthly rent**: MF = 3-5x, office = 6-12x, retail = 8-18x

**Optimal Increase Calculation**: Per tenant/unit, find the increase that maximizes expected value:

```
Expected Value = (increase amount x renewal probability x remaining term value) - (turnover probability x turnover cost)
```

**Sensitivity Table**: Aggregate NOI impact as average increase moves from 0% to 15%:

```
Avg Increase    Expected NOI    Expected Occupancy    Expected Turnovers    Net Effective Rent
0%              $X              95%                   X                     $X
3%              $X              94%                   X                     $X
5%              $X              93%                   X                     $X
8%              $X              91%                   X                     $X
10%             $X              89%                   X                     $X
15%             $X              85%                   X                     $X
```

### Module 3: Effective Rent NPV Comparison

Model three strategies over 1, 3, and 5-year horizons:

**Scenario A -- Aggressive** (close full loss-to-lease gap):
- Higher face rent from stayers
- Higher turnover from leavers
- New tenants at market rent
- Net effective rent over horizon

**Scenario B -- Moderate** (close half the gap):
- Moderate per-unit rent increase
- Moderate turnover
- Stable cash flow
- Net effective rent over horizon

**Scenario C -- Retention-Focused** (minimal increase):
- Lower per-unit rent
- Minimal turnover
- Maximum stability
- Net effective rent over horizon

```
Metric                  Aggressive    Moderate    Retention
Avg increase            16.7%         8.3%        3.0%
Expected turnover       X units       X units     X units
Year 1 effective rent   $X            $X          $X
3-year NPV              $X            $X          $X
5-year NPV              $X            $X          $X
```

**Breakeven Turnover Rate**: the turnover rate at which the aggressive strategy's NPV equals the moderate strategy's NPV. If expected turnover exceeds this rate, moderate wins.

**Recommended Strategy** with quantitative rationale.

### Module 4: Valuation Impact

- **Incremental NOI**: gross (all tenants renew) and net (accounting for expected turnover)
- **Valuation impact**: incremental NOI / cap rate = incremental property value
- **Per-unit math**: "Closing $150/unit of the gap nets ~$X incremental NOI, ~$X incremental value at X% cap"
- **DSCR impact**: DSCR before and after (gross and net scenarios)
- **Refinancing implications**: if applicable, change in appraised value and available loan proceeds

### Module 5: Market Cycle Overlay

**Cycle Position Assessment**:
- Recovery: rents rising, vacancy falling -- take measured increases
- Expansion: rents rising, construction starting -- push toward upper band
- Hypersupply: rents flat/falling, new deliveries -- moderate to protect occupancy
- Recession: rents falling, vacancy rising -- minimal increases, prioritize retention

**Competitive Supply Analysis**: new construction deliveries in submarket next 12-24 months. If significant, reduce aggressiveness on tenants with upcoming expirations.

**Concession Environment**: benchmark market concessions against property's renewal offering. If competitors offer 2 months free, aggressive rent increases with zero concessions will drive departures.

**Cycle-Adjusted Recommendation**: may modify Module 2 optimal increase downward (contraction) or upward (expansion).

### Appendices

**Renewal Email Template**: data-driven justification for the proposed increase, referencing market comparables and property improvements.

**Renewal Call Script**: adapted for tenant segment. Commercial: data-driven. Multifamily: market comparison with value proposition.

**KPI Dashboard Specification**: loss-to-lease closure rate, effective rent growth (not face rent), turnover cost per turn, valuation contribution per unit, DSCR tracking.

## Output Format

1. **Module 1: Loss-to-Lease Waterfall** -- per-unit table, waterfall, portfolio aggregate
2. **Module 2: Tenant Segmentation & Renewal Probability** -- segmentation matrix, optimal increase per tenant, aggregate sensitivity table
3. **Module 3: Effective Rent NPV Comparison** -- aggressive/moderate/retention scenarios with 1/3/5-year NPV, breakeven turnover rate
4. **Module 4: Valuation Impact** -- incremental NOI, property value impact, DSCR, refinancing
5. **Module 5: Market Cycle Overlay** -- cycle assessment, supply analysis, cycle-adjusted recommendation
6. **Appendices** -- renewal templates, scripts, KPI dashboard

## Red Flags & Failure Modes

- **Maximizing face rent without modeling turnover**: the highest rent is not the best rent if it drives 30% turnover. Always model the turnover response.
- **Ignoring loss-to-lease entirely**: loss-to-lease is real money left on the table. Even in soft markets, structured increases that close part of the gap create value.
- **Generic increase bands**: "5% for good tenants, 8% for everyone else" is not a strategy. Each tenant gets an individually optimized increase.
- **Confusing face rent with effective rent**: a 10% increase that causes 2 months vacancy plus $8K turnover cost may produce lower effective rent than a 5% increase with 100% retention.
- **Cycle-blind increases**: pushing 12% increases in a hypersupply market with competitors offering 2 months free is a recipe for occupancy decline.
- **Valuation disconnect**: ownership cares about property value, not rent PSF. Always translate rent increases into NOI and NOI into property value at the cap rate.

## Chain Notes

- **Upstream**: lease-compliance-auditor (escalation audit reveals missed increases inflating loss-to-lease). capex-prioritizer (capex-driven improvements justify premiums). market-memo-generator (market data feeds cycle and competitive analysis).
- **Peer**: tenant-delinquency-workout (workout terms affect loss-to-lease). lease-negotiation-analyzer (new lease terms set market benchmarks).
- **Downstream**: deal-underwriting-assistant (rent growth assumptions feed underwriting).

Related Skills

tenant-event-planner

6
from mariourquia/cre-skills-plugin

Plans, budgets, and executes tenant appreciation events, seasonal programming, and community engagement for CRE properties. Supports API-driven vendor booking when MCP integrations are available. Triggers: tenant event, appreciation event, holiday party, tenant engagement, community event, property event planning, seasonal programming.

Market Rent Refresh

6
from mariourquia/cre-skills-plugin

Checks freshness of market rent and concession references against overlay staleness threshold; organizes a refresh plan (comp sources, shop list, 3rd-party export, submarket coverage); produces the intake bundle for `workflows/rent_comp_intake` to process. Outputs a current-state memo and a refreshed benchmark view on completion.

rent-roll-to-database

6
from mariourquia/cre-skills-plugin

Transforms a tokenized/extracted rent roll into validated, typed, auditable, database-ready records: a multi-line charge schedule (base rent, CAM/tax/insurance recoveries, percentage rent, parking, storage) mapped to the canonical chart of accounts, lease- and unit-level facts, GPR and occupancy aggregates, a data-quality grade, and a target-model load plan. Tenant identity is pseudonymized; per-unit natural-person data never leaves the boundary. Triggers on 'load this rent roll into the database', 'normalize the rent roll to our schema', 'rent roll to warehouse', or when extracted rent-roll tokens need to become structured records before underwriting or tie-out.

rent-roll-t12-tieout

6
from mariourquia/cre-skills-plugin

Reconciles a normalized rent roll against a normalized T-12 on a stated, consistent basis (annualized contractual vs recognized accrual; collected cash out of scope) and never forces a tie. Reconciles base rent, recoveries and other income (jointly, per the canonical chart), occupancy, and the EGI / NOI-revenue bridge; classifies each gap as mapping, timing, or missing on a deterministic signature; surfaces residual_unexplained; and routes every untied dimension to human review. Triggers on 'tie out the rent roll to the T-12', 'reconcile contractual rent to actuals', 'NOI bridge from the rent roll', or 'revenue leakage check'.

rent-roll-formatter

6
from mariourquia/cre-skills-plugin

Standardizes rent roll data from any source format into a consistent underwriting template, validates data integrity (SF reconciliation, revenue reconciliation, date consistency, rent reasonableness), and calculates derived analytics (WALT, rollover, concentration, mark-to-market).

rent-roll-analyzer

6
from mariourquia/cre-skills-plugin

Ingests raw rent rolls (pasted table, CSV, or PDF extract) and produces a clean dataset with layered analytics: rollover schedule, mark-to-market waterfall, tenant concentration risk, WALT, rent benchmarking, MTM exposure, and data quality flags. Triggers on 'analyze this rent roll', 'clean up this rent roll', or when rent roll data needs preprocessing before underwriting.

leasing-strategy-marketing-planner

6
from mariourquia/cre-skills-plugin

Marketing material creation, broker event planning, TI cost benchmarking, marketing plan development, and commission structure benchmarking for Leasing Directors.

workout-playbook

6
from mariourquia/cre-skills-plugin

Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.

Work Order Triage

6
from mariourquia/cre-skills-plugin

Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.

warehouse-to-exhibit-mapper

6
from mariourquia/cre-skills-plugin

Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.

vendor-invoice-validator

6
from mariourquia/cre-skills-plugin

Validates vendor invoices against contract terms, scope of work, and market rates. Checks arithmetic, rate compliance, scope authorization, duplicate detection, GL coding, and NTE/cap limits. Assigns APPROVED, APPROVED WITH FLAGS, or HOLD FOR REVIEW verdict.

variance-narrative-generator

6
from mariourquia/cre-skills-plugin

Generates ownership-ready variance narratives from budget-vs-actual reports. Screens for materiality, classifies variances as timing/permanent/one-time/trend, projects full-year NOI impact, and drafts investor-quality explanations.