select_terminal_noi: Robust selection of terminal NOI for resale valuation

View source: R/dcf.R

select_terminal_noiR Documentation

Robust selection of terminal NOI for resale valuation

Description

Chooses a stabilised net operating income (NOI) for terminal value calculation, using a hierarchical decision rule designed to mitigate distortions driven by vacancy, capital expenditure, or atypical end-of-horizon cash-flow patterns.

The selection logic proceeds as follows:

  1. If NOI_N is (numerically) zero and force_theoretical_if_noi_n_zero is TRUE, use noi_theoretical when provided.

  2. If year N is clean (zero vacancy, zero capex, and NOI_N > 0), use NOI_N.

  3. If year N is distorted but year N-1 is clean and NOI_{N-1} > 0, use NOI_{N-1}.

  4. Otherwise, if noi_theoretical is provided, use it.

  5. As a last resort, fall back to NOI_N. A warning is emitted only when NOI_N <= 0.

Usage

select_terminal_noi(
  noi,
  vacancy = NULL,
  capex = NULL,
  noi_theoretical = NULL,
  force_theoretical_if_noi_n_zero = TRUE
)

Arguments

noi

Numeric vector of length N containing annual NOI values for years 1..N.

vacancy

Optional numeric vector of length N giving annual vacancy rates. When NULL, vacancy is assumed to be zero in all years.

capex

Optional numeric vector of length N giving annual capital expenditures. When NULL, capex is assumed to be zero in all years.

noi_theoretical

Optional numeric scalar giving a stabilised theoretical NOI (for example market rent multiplied by area).

force_theoretical_if_noi_n_zero

Logical scalar. When TRUE, and NOI_N is numerically zero, noi_theoretical is used when available.

Value

Numeric scalar giving the NOI retained for capitalization.


cre.dcf documentation built on April 10, 2026, 5:08 p.m.