OperationsFeb 21, 202513 min

What happens to cash flow if occupancy drops 5%? How to model it quickly

A fast, spreadsheet-first way to stress-test rent, NOI, and cash when occupancy dips-without rebuilding your model. Clarify the 5pp vs 5% drop, add collections, and tie to debt.

By Tom Elliott
What happens to cash flow if occupancy drops 5%? How to model it quickly

What happens to cash flow if occupancy drops 5%? How to model it quickly

An operator-friendly way to stress-test rent, NOI, and cash-without rebuilding your spreadsheet.

You are in a weekly review and someone asks the question that matters more than any IRR slide:

"If occupancy drops 5%, what happens to cash flow?"

In real estate, that one change can ripple through:

  • rent collected (obvious)
  • recoveries / service charge income (sometimes)
  • turnover/leasing costs (often)
  • bad debt / arrears (in stress cases)
  • and-most importantly-debt service coverage and cash runway

The trick is answering it quickly and consistently, without duplicating files or tearing up your model.

This guide shows a fast, spreadsheet-first approach you can implement in minutes.


First: clarify what "occupancy drops 5%" actually means

People use "5%" in two different ways:

  1. 5 percentage points (pp): 95% -> 90%
  2. 5% relative: 95% -> 90.25% (95% - 0.95)

In property conversations, it is usually percentage points (pp). If you do not clarify internally, you will produce answers that sound precise but are mismatched.

In the steps below, I will assume -5 pp unless stated otherwise.


The 10-minute model: a quick cash impact answer

This is the fastest "good enough" approach for portfolio reviews.

Step 1) Start from gross potential rent

Set up (or reference) the base case:

  • Units (or NLA / rooms)
  • Market / passing rent
  • Gross Potential Rent (GPR)

Example:

  • GPR = Units - RentPerUnit

If you already have a rent roll, your GPR is basically "rent if fully occupied."


Step 2) Apply occupancy as a single multiplier

Define:

  • Occ_base (e.g., 0.92)
  • Occ_delta (e.g., -0.05 for -5 pp)
  • Occ_stress = MAX(0, MIN(1, Occ_base + Occ_delta))

Then:

  • Effective Rent (billings)
    Rent_billed = GPR - Occ_stress

This alone answers the headline question: "What happens to top-line rent?"


Step 3) Convert billings into cash (collections)

In the real world:

  • billed rent - cash received
  • arrears can rise when occupancy drops (or when tenant quality deteriorates)

Add a collections factor:

  • CollectionRate (base might be 0.99; stress might be 0.97-0.98)

Cash in:

  • Rent_cash = Rent_billed - CollectionRate

If you skip this step, you will often understate how quickly cash tightens in a stress case.


Step 4) Adjust the costs that actually move with occupancy

Not all opex changes when occupancy falls. Most fixed costs stay fixed.

But a few items often move:

  • letting / leasing fees
  • unit turnaround costs (cleaning, minor repairs)
  • utilities in some operating models
  • bad debt provision (if you model it separately)

A quick way is to split opex into:

  • Fixed opex (unchanged)
  • Variable opex (linked to occupancy or to move-outs)

Simple stress approximation:

  • Opex_total = Opex_fixed + (Opex_variable - Occ_stress)

Or even more conservative:

  • keep opex flat (worst case for NOI), and only reduce income.

Step 5) Flow it through to cash runway (the "so what")

Now connect to the two outflows that decide survivability:

  • Debt service (interest + principal)
  • Capex (if ongoing)

Cash movement:

  • NetCash = Rent_cash - Opex_total - Capex - DebtService

Then track:

  • ClosingCash = OpeningCash + NetCash

Your answer becomes:

  • "NOI drops by -X per month"
  • "Cash bottom is -Y in month Z"
  • "We breach DSCR/ICR in months A-B (if applicable)"

That is the minimum set of outputs stakeholders actually act on.


A simple numeric example (so you can see it instantly)

Assume monthly:

  • GPR = -100,000
  • Base occupancy = 95%
  • Stress occupancy = 90% (-5 pp)
  • Collections = 99% (base), 98% (stress)
  • Opex fixed = -25,000
  • Opex variable = -5,000
  • Debt service = -40,000
  • Capex = -5,000

Base case

  • Rent billed = 100,000 - 0.95 = 95,000
  • Rent cash = 95,000 - 0.99 = 94,050
  • Opex = 25,000 + (5,000 - 0.95) = 29,750
  • Net cash = 94,050 - 29,750 - 40,000 - 5,000 = -19,300

Stress case

  • Rent billed = 100,000 - 0.90 = 90,000
  • Rent cash = 90,000 - 0.98 = 88,200
  • Opex = 25,000 + (5,000 - 0.90) = 29,500
  • Net cash = 88,200 - 29,500 - 40,000 - 5,000 = -13,700

Result: a -5 pp occupancy move reduces net cash by -5,600/month here-before any knock-on effects like higher leasing costs, longer voids, or covenant traps.


The 30-minute model: make it realistic without making it heavy

If you want something still fast, but closer to reality, add two upgrades:

Upgrade 1: ramp the occupancy drop over time

Occupancy typically does not drop overnight across the whole asset.

Create an activation factor:

  • Step change: Active = IF(Month >= StartMonth, 1, 0)
  • Ramp: Active = MIN(1, MAX(0, MonthsFromStart / RampMonths))

Then:

  • Occ_stress_t = Occ_base_t + (Occ_delta - Active)

This stops your forecast from looking like a cliff.

Upgrade 2: model the cause of occupancy drop (voids vs price vs churn)

A 5 pp occupancy drop can come from:

  • a few leases expiring with slower re-letting
  • downtime from refurb works
  • deliberate vacancy while repositioning
  • weaker demand / higher incentives

Your cash answer changes depending on the cause.

A lightweight way to capture this:

  • add a "void duration" assumption (e.g., 1 month -> 2 months)
  • add a "leasing cost per move-in" assumption
  • optionally add a "concession" or "incentive" line

This produces a much more believable cash story: not just "rent down," but "rent down and leasing costs up."


The spreadsheet pattern that makes this fast every time

If you only implement one modelling improvement, implement this:

Use a scenario table + a single scenario selector

Instead of rewriting assumptions in-line, keep a small table like:

  • Scenario name
  • Occupancy delta (pp)
  • Collections rate
  • Start month
  • Ramp months

Then all your modules reference the selected scenario.

This gives you:

  • Base / Downside / Severe downside instantly
  • No duplicate files
  • Fewer formula errors
  • Repeatable answers in meetings

Common mistakes that make occupancy stress tests misleading

  1. Mixing up % vs percentage points (95% -> 90% is -5 pp, not -5%)
  2. Reducing opex too aggressively (many costs are fixed)
  3. Ignoring collections/arrears (cash tightens before NOI tells you)
  4. Forgetting downtime/capex interaction (refurbs often cause occupancy dips)
  5. Not checking covenants / cash traps (sometimes cash is restricted even if "portfolio cash" looks fine)

What to report after you run the stress (the 5 outputs people care about)

When someone asks "what happens if occupancy drops 5%," a useful answer is:

  1. NOI impact (-/month and -/year)
  2. Minimum cash balance and when it happens
  3. Peak funding requirement (if cash goes negative)
  4. Debt service coverage impact (DSCR/ICR proxy)
  5. Which SPVs/assets drive the downside (portfolio concentration risk)

That last one is where multi-entity portfolios struggle: the portfolio number is easy; the explainable breakdown is hard.


How we help teams do this across every SPV (without rebuilding spreadsheets)

In SPV-heavy portfolios, the modelling challenge is not one spreadsheet-it is consistency across entities:

  • one-stop visibility across multiple Xero or QuickBooks SPVs
  • standardised COA mappings so rollups reconcile cleanly
  • portfolio dashboards with drill-down
  • FP&A and rolling forecasts
  • "what-if" scenario planning (occupancy shifts, rates, refurb programmes) tied directly to cash flow and returns

Drop-in CTA copy:
If you want to answer "what happens if occupancy drops 5%?" in minutes-at portfolio level and by SPV-without rebuilding your model each month, we can show you a scenario-ready setup that stays reconciled and drillable.

Ready for portfolio-grade reporting?

Book a demo to see your SPVs in one dashboard, model scenarios, and publish investor-ready commentary.

Team reviewing a dashboard