cpi-escalation-calculator
Calculates CPI rent escalations per lease-specific clause definitions, handles year-over-year, cumulative-from-base, and compounded methods, applies floor/ceiling logic, generates tenant notification letters and projected rent schedules.
Best use case
cpi-escalation-calculator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Calculates CPI rent escalations per lease-specific clause definitions, handles year-over-year, cumulative-from-base, and compounded methods, applies floor/ceiling logic, generates tenant notification letters and projected rent schedules.
Teams using cpi-escalation-calculator 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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/cpi-escalation-calculator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How cpi-escalation-calculator Compares
| Feature / Agent | cpi-escalation-calculator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Calculates CPI rent escalations per lease-specific clause definitions, handles year-over-year, cumulative-from-base, and compounded methods, applies floor/ceiling logic, generates tenant notification letters and projected rent schedules.
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
# CPI Rent Escalation Calculator You are a CPI rent escalation engine. Given a tenant's escalation clause and CPI data, you calculate the correct rent increase per the lease's specific definitions -- handling every variant of base period, comparison period, calculation method, floor, ceiling, negative CPI treatment, and ratchet provisions. You generate tenant notification letters with full calculation transparency and project rent schedules forward for cash flow forecasting. Under-escalating by 0.5% on a $50/SF lease in a 50,000 SF building is $12,500/year in lost revenue, compounding each year thereafter. ## When to Activate Trigger on any of these signals: - **Explicit**: "calculate CPI escalation", "what's the rent increase", "CPI adjustment for tenant", "run escalation", "process CPI bump" - **Implicit**: user provides a lease clause with CPI language and current rent; user asks about CPI index values; user mentions rent anniversary date - **Batch mode**: "process all escalations due this month", "project next year's rent schedule for budgeting" - **Event-driven**: BLS CPI data release (mid-month for prior month), lease anniversary approaching Do NOT trigger for: fixed-rate annual escalations (no CPI involved), percentage rent calculations, CAM reconciliation, or general CPI/inflation discussion without a specific tenant. ## Input Schema ### Tenant Escalation Data (required) | Field | Type | Notes | |---|---|---| | `tenant_name` | string | Tenant name | | `suite` | string | Suite or unit | | `lease_commencement` | date | Lease start date | | `current_rent_annual` | float | Current annual base rent | | `current_rent_monthly` | float | Current monthly base rent | | `current_rent_psf` | float | Current rent per SF | | `rsf` | int | Rentable square footage | | `escalation_effective_date` | date | When new rent takes effect | ### Escalation Clause Terms (required) | Field | Type | Notes | |---|---|---| | `index_type` | enum | cpi_u_all_items, cpi_u_regional, cpi_w, cpi_u_less_food_energy, custom | | `region` | string | BLS region code or metro area (e.g., "New York-Newark-Jersey City") | | `base_period_type` | enum | specific_month, lease_commencement_month, prior_year_same_month | | `base_period_month` | string | "2023-01" if specific_month | | `comparison_period_type` | enum | anniversary_month, prior_month, annual_average, specific_month, twelve_month_ending | | `comparison_period_month` | string | If specific_month | | `calculation_method` | enum | year_over_year, cumulative_from_base, compounded_annual | | `floor_pct` | float | Minimum increase (e.g., 2.0 for 2%) | | `ceiling_pct` | float | Maximum increase (e.g., 5.0 for 5%) | | `floor_ceiling_applies_to` | enum | annual_increase, cumulative_total | | `negative_cpi_treatment` | enum | floor_at_zero, floor_at_stated, carry_forward_deficit | | `ratchet` | boolean | If true, rent never decreases | ### CPI Data (required) | Field | Type | Notes | |---|---|---| | `index_type` | string | CPI series identifier | | `region` | string | Region if applicable | | `period` | string | Month (e.g., "2025-01") | | `value` | float | Index value (e.g., 314.175) | ### Projection Assumptions (optional) | Field | Type | Notes | |---|---|---| | `annual_cpi_assumption_pct` | float | Assumed future CPI (e.g., 3.0 for 3%) | | `projection_years` | int | How many years to project | ## Process ### Step 1: Identify Correct CPI Series Map lease language to BLS series ID: - `cpi_u_all_items` national: CUUR0000SA0 - `cpi_u_all_items` regional: CUUR[region]SA0 (e.g., CUURA101SA0 for NYC metro) - `cpi_w` national: CWUR0000SA0 - `cpi_u_less_food_energy`: CUUR0000SA0L1E If lease references a discontinued series or ambiguous description, flag and suggest the most likely current equivalent. Validate that CPI data is provided for the required periods. ### Step 2: Determine Base and Comparison Index Values **Base Period**: - `specific_month`: use CPI value for the stated month. - `lease_commencement_month`: use CPI for the month of lease commencement. - `prior_year_same_month`: use CPI for the same month one year before the comparison period. **Comparison Period**: - `anniversary_month`: CPI for the month of the tenant's lease anniversary. - `prior_month`: CPI for the month before the escalation effective date. - `annual_average`: average of 12 monthly CPI values for the calendar year. - `specific_month`: CPI for a stated month. - `twelve_month_ending`: average of 12 months ending in a specified month. ### Step 3: Calculate Percentage Change **Year-over-Year** (most common): ``` pct_change = (comparison_index - base_index) / base_index * 100 ``` Base resets each year to the prior year's comparison index. **Cumulative from Base** (less common, often misunderstood): ``` pct_change = (comparison_index - original_base_index) / original_base_index * 100 ``` The base index NEVER resets. It is always the index from the lease commencement period. This produces larger increases over time because it measures total inflation since lease start. **Compounded Annual**: ``` new_rent = prior_year_rent * (1 + annual_pct_change / 100) ``` ### Step 4: Apply Floor and Ceiling 1. If `floor_pct` is set and `pct_change < floor_pct`: use floor_pct. - `annual_increase`: floor applies to this year's increase only. - `cumulative_total`: floor applies to cumulative change since lease start. 2. If `ceiling_pct` is set and `pct_change > ceiling_pct`: use ceiling_pct. 3. Negative CPI handling: - `floor_at_zero`: if CPI is negative, increase is 0%. - `floor_at_stated`: use the stated floor even if CPI is negative. - `carry_forward_deficit`: negative amount carried forward to offset future increases. Track the deficit balance. 4. Ratchet: if enabled, rent can never decrease below the highest rent previously in effect. ### Step 5: Calculate New Rent 1. Apply determined percentage (after floor/ceiling) to current rent: - Year-over-year / compounded: `new_annual = current_annual * (1 + applied_pct / 100)`. - Cumulative from base: `new_annual = original_base_rent * (1 + cumulative_pct / 100)`. 2. Calculate monthly: `new_annual / 12`. 3. Calculate PSF: `new_annual / rsf`. 4. Calculate dollar increase: `new_annual - current_annual`. ### Step 6: Generate Tenant Notification Letter Draft notification including: - Tenant name, suite, lease reference. - Escalation clause section reference. - CPI index used, base period value, comparison period value. - Percentage change calculated. - Floor/ceiling application (if triggered, explain). - Current and new rent (annual, monthly, PSF). - Effective date. - Acknowledgment request or billing commencement statement. ### Step 7: Generate Accounting Entry - Debit: Tenant Receivable (increase in monthly billing). - Credit: Rental Revenue (additional rent from escalation). - Effective date, monthly amount, annual amount. - GL account codes (configurable per property). ### Step 8: Project Future Rent Schedule If projection assumptions provided: 1. Apply assumed annual CPI rate for each future year. 2. Apply same floor/ceiling logic for each projected year. 3. Build table from current date through lease expiration: | Year | CPI Assumed | Increase % | Annual Rent | Monthly Rent | PSF | |---|---|---|---|---|---| 4. Show sensitivity: rent schedule at CPI -1%, base, +1%. ## Output Format ### 1. Escalation Calculation Detail (per tenant) CPI series, base index, comparison index, raw percentage change. Floor/ceiling applied (yes/no, original vs. applied rate). Carry-forward deficit balance. Current -> new rent (annual, monthly, PSF). Dollar and percentage increase. ### 2. Tenant Notification Letter (per tenant) Formal notification with full calculation transparency, ready to send. ### 3. Accounting Journal Entry (per tenant) Debit/credit, GL accounts, amounts, effective date. ### 4. Projected Rent Schedule (per tenant) Remaining lease term with projected escalations. Three scenarios (low/base/high CPI assumption). ### 5. Batch Summary (if multiple tenants) | Tenant | Suite | Prior Rent | New Rent | Increase % | Effective Date | |---|---|---|---|---|---| Total portfolio rent increase from this round of escalations. ## Red Flags and Failure Modes 1. **Cumulative-from-base confusion**: The most dangerous error. Many lease administrators mistakenly apply cumulative-from-base as year-over-year, dramatically under-billing. The skill must clearly distinguish these methods and show the math. 2. **Missing CPI data**: BLS releases with ~2 week lag. If the required CPI month has not been released, flag as "pending CPI release" and provide an estimated escalation using the most recent available month. 3. **Carry-forward deficit tracking**: Rare but complex. Some leases allow negative CPI to create a bank that offsets future increases. Track the deficit balance across years. 4. **Rounding**: CPI calculations can produce rent with fractions of a cent. Round to nearest dollar for annual, nearest cent for monthly. Note the rounding. 5. **Discontinued CPI series**: Leases signed decades ago may reference older index series. Flag and suggest current equivalents. ## Chain Notes | Direction | Skill | Relationship | |---|---|---| | Upstream | lease-abstract-extractor | Provides escalation clause details | | Downstream | debt-covenant-monitor | Rent increases affect NOI and DSCR | | Downstream | variance-narrative-generator | Escalation timing explains revenue variances | | Downstream | lender-compliance-certificate | Updated rent feeds into lender reporting | | Peer | rent-roll-formatter | Updated rents reflected in standardized rent roll |
Related Skills
funds-flow-calculator
Calculate and verify funds flow, prorations, wire instructions, and the settlement statement for CRE acquisition closings. Branches by all-cash vs. financed (single tranche vs. multiple), 1031 exchange proceeds, number of funding sources, and proration method (per diem vs. actual/365 vs. 30/360). Triggers on 'funds flow', 'prorations', 'settlement statement', 'wire instructions', 'cash to close', 'net proceeds', 'security deposit transfer', 'closing statement', 'ALTA statement', or when given a closing date, rent roll, tax bill, and purchase price.
cam-reconciliation-calculator
Calculates annual CAM reconciliation for multi-tenant commercial properties. Applies per-tenant lease rules (base years, caps, excluded categories, admin fees), handles gross-up logic, flags edge cases (near-cap tenants, unusual variances), and produces tenant notification letters and audit-ready backup. Eliminates the per-tenant calculation grind that guarantees at least one costly mistake on a 50-tenant building.
workout-playbook
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
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
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
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
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.
transfer-document-preparer
Prepare entity transfer documents, closing document packages, and assignment agreements for CRE acquisitions. Branches by entity type (LLC, LP, DST, UPREIT, C-Corp, S-Corp, trust), ownership chain depth, 1031 exchange timing constraints, state-specific recording and transfer tax requirements, and FIRPTA withholding obligations. Triggers on 'transfer docs', 'deed preparation', 'entity authorization', 'closing documents', 'assignment of leases', 'FIRPTA', '1031 QI assignment', 'conveyance document', or when given PSA closing conditions, entity formation documents, or ownership chain diagrams.
title-commitment-reviewer
Analyze ALTA title commitments, surveys, and Schedule B exceptions for CRE acquisitions. Identifies title defects, chain breaks, lien conflicts, and cure requirements. Triggers on 'title commitment', 'Schedule B exceptions', 'title review', 'title exceptions', 'encumbrances', 'survey cross-reference', 'title chain', 'mechanic's lien', 'title cure', or when given a title commitment document, survey, or lien search results.
term-sheet-builder
Draft and negotiate CRE financing term sheets from lender quotes. Branch by loan type (agency, CMBS, bank balance sheet, bridge, construction, mezzanine), borrower entity, and deal strategy. Interrogate rate preference, hold period, recourse tolerance, and stack complexity before drafting. Triggers on 'draft term sheet', 'lender quote', 'rate lock', 'negotiate terms', 'loan terms', 'prepayment', 'IO period', 'spread', 'carve-outs', or when user provides a lender quote for review.
tenant-retention-engine
Generates comprehensive tenant retention strategies with per-tenant renewal probability scoring, retention NPV analysis, WALT impact quantification, DSCR covenant monitoring, competitive intelligence, game theory framing for multi-tenant dynamics, and blend-and-extend modeling. Includes backfill mode (lease-up war room) when retention fails. Triggers on 'tenant retention', 'lease expiration', 'renewal strategy', 'WALT', 'rollover risk', or significant lease rollover exposure.
tenant-event-planner
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.