CFDL

CRE: two-tenant office

An institutional two-tenant office DCF: free rent, anniversary escalations, recoveries above expense stops, tenant improvements and leasing commissions, probability-blended rollover, and a forward-NOI exit over ten years.

Every number below is checked against an independent reference implementation on every commit — period by period, and on each metric, inside a declared tolerance. See benchmark methodology.

The case

An institutional two-tenant office building held for ten years. Tenant A takes a five-year lease with three months free and 3% anniversary escalations; Tenant B takes seven years from mid-year one at 2.5%. Both recover operating expenses above their own expense stop, at different pro-rata shares. Tenant A's expiry is modeled as a probability-weighted rollover — 70% renewal at one rent, otherwise a new tenant at market after three months of downtime, with different tenant improvement and leasing commission costs on each branch. A permanent mortgage runs underneath, and the building is sold on forward net operating income.

The reference

Institutional lease-by-lease office DCF conventions, as practiced by the commercial valuation software this kind of model is built in.

Not redistributable. The source cannot be published, so the reference is an independent recreation of its conventions — built separately from the model and compared against it period by period.

What it exercises

Packcre
Contract typescre.lease_unit (two instances), cre.rollover, cre.vacancy_loss, cre.opex_line, cre.permanent_debt, cre.exit_forward
Language featuresmultiple instances of one contract type, per-period subtotals
Conventionsfree rent, anniversary escalation, recoveries above an expense stop, tenant improvements and leasing commissions, probability-blended rollover with downtime, a forward-NOI exit

More of the CRE pack's contract surface than any other case.

The result

Present value 1,424,273.80, net operating income 4,718,933.90, leasing costs 525,000.00 and debt service 4,421,429.94.

Asserted: five per-period series across 120 months — effective gross income, net operating income, debt service, the coverage ratio and net cash flow — plus the four lifetime figures.

Assertion is per period rather than on the totals: a lifetime coverage ratio of 1.4 can contain a year at 0.9.

The delta

None: every period agrees inside a one-cent tolerance across all 120 months.

Run configuration

{
  "deterministic": {
    "annual_discount_rate": 0.0725
  }
}

Verified results

Checked period by period: 5 series across 120 periods600 values in all, each within the tolerance shown.

  • net_cash_flow — within ±0.01
  • domain.cre.egi — within ±0.01
  • domain.cre.noi — within ±0.01
  • domain.cre.debt_service — within ±0.01
  • domain.cre.dscr — within ±1.0e-6

Summary metrics for the base run:

MetricValueTolerance
model.npv1,424,273.8±1
domain.cre.noi4,718,933.9±1
domain.cre.leasing_costs525,000±1
domain.cre.debt_service4,421,429.94±1
domain.cre.dscr1.067287±0.0001