This example uses a pack contract for a formal lease (formal agreement with another party).
Single lease with explicit lease-up ramp terms: lease_up.start_period, lease_up.months, lease_up.start_occupancy, lease_up.end_occupancy. Industry-standard occupancy ramp from lease commencement to stabilized.
Compile
./target/debug/cfdl compile examples/cre_lease_up --out /tmp/cre_lease_up.ir.json --packs packsRun
./target/debug/cfdl run /tmp/cre_lease_up.ir.json --out /tmp/cre_lease_up.results.json --config examples/cre_lease_up/run.json --packs packsmodel.cfdl
// A property leasing up, in the fewest words: the lease's term says when
// leasing begins, `lease_up_months` says how long it takes, and rent climbs
// from the first month's slice to full occupancy along a straight line.
version 0.1
model "cre-lease-up-example"
use pack "cre" version "0.1.0"
time calendar monthly from 2026-01 for 24
entity asset property : CRE.Asset.RealProperty {
state lease_up
}
contract cre.lease on entity asset.property {
term 2026-07..2027-12
terms {
rent = 25000
lease_up_months = 18
}
}