Analyst Cheat Sheet

knitr::opts_chunk$set(collapse = TRUE, comment = "#>")

Goal

This guide covers the basic workflow:

deal_spec() -> analyze_deal() -> summary() -> deal_cashflows()

The 5 functions to know

The 10 variables that matter most

| Variable | Meaning | |:--|:--| | price | all-in acquisition price | | horizon_years | holding period | | entry_yield | entry cap rate | | noi_y1 | year-1 NOI if already known | | rent_sqm | rent per sqm | | area_sqm | lettable area | | vacancy_rate | average vacancy | | discount_rate | discount rate | | ltv | initial leverage | | rate | debt interest rate |

Use exactly one income mode:

Quick Start

library(cre.dcf)

deal <- deal_spec(
  price = 10e6,
  entry_yield = 0.055,
  horizon_years = 10,
  debt = debt_terms(
    ltv = 0.60,
    rate = 0.045,
    type = "bullet"
  )
)

res <- analyze_deal(deal)

summary(res)

Typical Workflow

1. Define the deal

deal <- deal_spec(
  price = 12e6,
  rent_sqm = 240,
  area_sqm = 4000,
  vacancy_rate = 0.08,
  opex_sqm = 15,
  horizon_years = 7,
  discount_rate = 0.08,
  debt = debt_terms(
    ltv = 0.55,
    rate = 0.043,
    type = "amort",
    maturity = 7
  )
)

deal

2. Run the deal

res <- analyze_deal(deal)
res

3. Read the key metrics

summary(res)

Key fields:

4. Extract the tables

deal_cashflows(res, "comparison")
deal_cashflows(res, "full")

Use:

Three Common Input Styles

Entry yield known

deal_spec(price = 10e6, entry_yield = 0.055)

NOI already known

deal_spec(price = 10e6, noi_y1 = 550000)

Rent roll style input

deal_spec(
  price = 10e6,
  rent_sqm = 220,
  area_sqm = 3000,
  vacancy_rate = 0.05,
  opex_sqm = 12
)

Common Mistakes

When to move to the advanced API

Use the advanced API only if you need:



Try the cre.dcf package in your browser

Any scripts or data that you put into this service are public.

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