{
  "slug": "commercial-nnn-lease-escalations",
  "title": "Commercial NNN Lease Escalation Calculator",
  "heading": "Commercial NNN Lease Escalation Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/commercial-nnn-lease-escalations",
  "summary": "Project rent growth over a triple-net lease term with fixed or CPI-linked escalations.",
  "description": "Triple-net (NNN) leases pass property taxes, insurance, and maintenance through to the tenant, so the landlord's rent roll growth comes almost entirely from contractual escalations built into the lease. Common structures are fixed annual bumps (2-3% is typical for credit-tenant retail and industrial), fixed periodic bumps (10% every five years is common in longer-term ground leases), or CPI-linked adjustments with a floor and ceiling. This calculator projects base rent year by year under either a fixed annual escalator or a periodic step structure, showing the ending rent and the average annual growth rate, which matters directly for valuing the leasehold at sale — a stronger escalation schedule supports a lower going-in cap rate because the buyer is underwriting real, contracted NOI growth rather than hoping for market rent growth at renewal. When comparing two NNN properties with similar starting cap rates, the one with 3% annual bumps will meaningfully outearn one with flat rent and a single 10% bump at year five over any hold period longer than about six years, which is the kind of detail that gets lost if you only compare year-one cap rates.",
  "formula": "Fixed annual: Rent(year n) = Base rent × (1 + escalation%)^n; Periodic step: Rent steps up by fixed % every step interval.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=commercial-nnn-lease-escalations",
  "inputs": [
    {
      "id": "baseRent",
      "label": "Current annual base rent",
      "kind": "number",
      "hint": null,
      "default": 120000,
      "unit": "$",
      "min": 1,
      "max": null
    },
    {
      "id": "escalationType",
      "label": "Escalation structure",
      "kind": "select",
      "hint": null,
      "default": "annual",
      "options": [
        {
          "value": "annual",
          "label": "Fixed annual %"
        },
        {
          "value": "periodic",
          "label": "Periodic step every N years"
        }
      ]
    },
    {
      "id": "escalationPct",
      "label": "Escalation rate",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": "%",
      "min": 0,
      "max": 15
    },
    {
      "id": "stepYears",
      "label": "Step interval (if periodic)",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "years",
      "min": 1,
      "max": 10
    },
    {
      "id": "leaseTerm",
      "label": "Remaining lease term",
      "kind": "number",
      "hint": null,
      "default": 10,
      "unit": "years",
      "min": 1,
      "max": 30
    }
  ],
  "outputs": [
    {
      "id": "endingRent",
      "label": "Ending annual rent",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "cumulativeRent",
      "label": "Cumulative rent over term",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "avgAnnualGrowth",
      "label": "Average annual growth rate",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalGrowthPct",
      "label": "Total rent growth over term",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Current annual base rent: 120000 $",
      "Escalation structure: Fixed annual %",
      "Escalation rate: 3 %",
      "Step interval (if periodic): 5 years",
      "Remaining lease term: 10 years"
    ],
    "outputs": [
      "Ending annual rent: $161,270",
      "Cumulative rent over term: $1,416,935",
      "Average annual growth rate: 3.00%",
      "Total rent growth over term: 34%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter current annual base rent ($).",
      "Enter escalation structure.",
      "Enter escalation rate (%).",
      "Enter step interval (if periodic) (years).",
      "Enter remaining lease term (years).",
      "Read your ending annual rent on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "baseRent": 72000,
        "escalationType": "annual",
        "escalationPct": 1.7999999999999998,
        "stepYears": 3,
        "leaseTerm": 6
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "baseRent": 120000,
        "escalationType": "annual",
        "escalationPct": 3,
        "stepYears": 5,
        "leaseTerm": 10
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "baseRent": 192000,
        "escalationType": "annual",
        "escalationPct": 4.800000000000001,
        "stepYears": 8,
        "leaseTerm": 16
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "What's a typical NNN escalation for credit tenants?",
      "a": "Investment-grade national tenants (Walgreens, Dollar General, major QSR chains) commonly sign 1.5-2.5% annual bumps or 5-10% step-ups every five years; weaker or local tenants sometimes negotiate flat rent for the first few years with escalations starting later."
    },
    {
      "q": "How do CPI-linked escalations work and why include a floor?",
      "a": "CPI-linked rent adjusts to actual inflation, which protects the landlord in high-inflation periods but risks near-zero growth if inflation is low, so most CPI leases include a floor (e.g., minimum 1.5%) and often a ceiling (e.g., maximum 4%) to bound the range for both parties."
    },
    {
      "q": "Does a stronger escalation schedule always justify a lower cap rate?",
      "a": "Generally yes for otherwise comparable tenant credit and lease term, since a buyer is underwriting more certain future NOI growth. But weigh it against remaining lease term — strong escalations on a lease with only 3 years left matter far less than the same escalations on a fresh 15-year term, since near-term rollover risk dominates the valuation."
    },
    {
      "q": "How does this interact with percentage rent clauses?",
      "a": "This calculator only handles base rent escalation; some NNN retail leases add percentage rent above a sales breakpoint, which is a separate, revenue-dependent income stream layered on top of the contractual base rent modeled here."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/ti-lc-amortization",
    "https://www.revenuelab.fyi/toolbox/cap-rate-expansion-sensitivity",
    "https://www.revenuelab.fyi/toolbox/mobile-home-park-lot-economics"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Commercial NNN Lease Escalation Calculator (https://www.revenuelab.fyi/toolbox/commercial-nnn-lease-escalations)"
}