{
  "_id": "6a27bbe924555f66ed53b38a",
  "Package": "cre.dcf",
  "Title": "Discounted Cash Flow Tools for Commercial Real Estate",
  "Version": "0.0.5",
  "Date": "2026-04-10",
  "Authors@R": "person(\"Kevin\", \"Poisson\", email = \"kevin.poisson@parisgeo.cnrs.fr\",\nrole = c(\"aut\", \"cre\"))",
  "Author": "Kevin Poisson [aut, cre]",
  "Maintainer": "Kevin Poisson <kevin.poisson@parisgeo.cnrs.fr>",
  "Description": "Provides 'R' utilities to build unlevered and levered\ndiscounted cash flow (DCF) tables for commercial real estate\n(CRE) assets. Functions generate bullet and amortising debt\nschedules, compute credit metrics such as debt service coverage\nratios (DSCR), debt yield ratios, and forward loan-to-value\nratios (LTV), and expose an explicit property-level operating\nchain from gross effective income (GEI) to net operating income\n(NOI) and property before-tax cash flow (PBTCF). The toolkit\nsupports end-to-end scenario execution from a YAML (YAML Ain't\nMarkup Language) configuration file parsed with 'yaml',\nincludes helpers for effective rent, constrained loan\nunderwriting, and simplified SPV-level tax simulations, and\nships reproducible vignettes for methodological and applied use\ncases.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Language": "en",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "RoxygenNote": "7.3.3",
  "LazyData": "true",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-09 06:41:49 UTC",
    "User": "root"
  },
  "Repository": "https://kpoigeo.r-universe.dev",
  "Date/Publication": "2026-04-10 12:03:26 UTC",
  "RemoteUrl": "https://github.com/cran/cre.dcf",
  "RemoteRef": "HEAD",
  "RemoteSha": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
  "MD5sum": "0726a6733dcf880063b117a8d663933e",
  "_user": "kpoigeo",
  "_type": "src",
  "_file": "cre.dcf_0.0.5.tar.gz",
  "_fileid": "c87089174b321d7f75fb26948f781155af79b5933164801dbfaf6e33e0b96a51",
  "_filesize": 1054477,
  "_sha256": "c87089174b321d7f75fb26948f781155af79b5933164801dbfaf6e33e0b96a51",
  "_created": "2026-06-09T06:41:49.000Z",
  "_published": "2026-06-09T07:08:25.616Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 80263573252,
      "time": 143,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7500348964"
    },
    {
      "job": 80263573277,
      "time": 134,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7500346418"
    },
    {
      "job": 80263573280,
      "time": 143,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7500638774"
    },
    {
      "job": 80263573248,
      "time": 194,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7500755719"
    },
    {
      "job": 80263136317,
      "time": 193,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7500309193"
    },
    {
      "job": 80263573410,
      "time": 116,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7500341343"
    },
    {
      "job": 80263573264,
      "time": 103,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7500337982"
    },
    {
      "job": 80263573298,
      "time": 106,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7500338735"
    },
    {
      "job": 80263573290,
      "time": 95,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7500335757"
    }
  ],
  "_buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/cre.dcf",
  "_commit": {
    "id": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
    "author": "Kevin Poisson <kevin.poisson@parisgeo.cnrs.fr>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.0.5\n",
    "time": 1775822606
  },
  "_maintainer": {
    "name": "Kevin Poisson",
    "email": "kevin.poisson@parisgeo.cnrs.fr",
    "login": "kpoigeo",
    "description": "",
    "uuid": 193808139
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1",
      "role": "Depends"
    },
    {
      "package": "checkmate",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "purrr",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "readr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "scales",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "tidyr",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-03",
      "n": 1
    },
    {
      "week": "2026-15",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.0.3",
      "date": "2026-01-12"
    },
    {
      "name": "0.0.5",
      "date": "2026-04-10"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "kpoigeo",
      "count": 2,
      "uuid": 193808139
    }
  ],
  "_userbio": {
    "uuid": 193808139,
    "type": "user",
    "name": "kpoigeo"
  },
  "_downloads": {
    "count": 500,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/cre.dcf"
  },
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/cre.dcf.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "manual.pdf"
  ],
  "_realowner": "kpoigeo",
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.0.3",
      "date": "2026-01-12"
    },
    {
      "version": "0.0.5",
      "date": "2026-04-10"
    }
  ],
  "_exports": [
    "add_credit_ratios",
    "analyze_deal",
    "as_rate",
    "as_yaml",
    "asset_snapshot",
    "build_lease_table",
    "cf_compute_levered",
    "cf_make_full_table",
    "cfg_explain",
    "cfg_missing",
    "cfg_normalize",
    "cfg_validate",
    "compare_financing_scenarios",
    "compute_equity_invest",
    "compute_leveraged_metrics",
    "compute_noi_y1",
    "compute_unleveraged_metrics",
    "dcf_add_noi_columns",
    "dcf_calculate",
    "dcf_read_config",
    "dcf_spec_template",
    "dcf_write_yaml_template",
    "deal_cashflows",
    "deal_spec",
    "deal_to_config",
    "debt_built_schedule",
    "debt_terms",
    "depreciation_spec",
    "derive_exit_yield",
    "equity_multiple_safe",
    "flag_covenants",
    "forward_value_from_noi",
    "get_cfg",
    "guard_rate",
    "init_debt_fees",
    "interest_rule",
    "irr_partition",
    "irr_safe",
    "lease_effective_rent",
    "lease_event",
    "lease_roll",
    "lease_roll_snapshot",
    "lease_unit",
    "leases_tbl_structuration",
    "loss_rule",
    "npv_rate",
    "price_from_cap",
    "project_terminal_noi",
    "renewal_event",
    "run_case",
    "run_from_config",
    "select_terminal_noi",
    "simulate_shock",
    "styles_breach_counts",
    "styles_break_even_exit_yield",
    "styles_distressed_exit",
    "styles_equity_cashflows",
    "styles_exit_sensitivity",
    "styles_growth_sensitivity",
    "styles_manifest",
    "styles_pv_split",
    "styles_revalue_yield_plus_growth",
    "sweep_sensitivities",
    "tax_basis_spv",
    "tax_run_spv",
    "tax_spec_spv",
    "test_refi",
    "underwrite_loan",
    "vacancy_event"
  ],
  "_datasets": [
    {
      "name": "cre_glossary",
      "title": "Glossary of CRE finance and modelling terms",
      "object": "cre_glossary",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "term_id",
        "term_en",
        "term_fr",
        "definition_en",
        "definition_fr",
        "category",
        "subcategory",
        "see_also"
      ],
      "rows": 21,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "add_credit_ratios",
      "title": "Add credit ratios for debt service, interest cover, debt yield, and forward loan-to-value",
      "topics": [
        "add_credit_ratios"
      ]
    },
    {
      "page": "analyze_deal",
      "title": "Analyze a simplified CRE deal",
      "topics": [
        "analyze_deal"
      ]
    },
    {
      "page": "as_rate",
      "title": "Rate conversion (decimal vs bps)",
      "topics": [
        "as_rate"
      ]
    },
    {
      "page": "as_yaml",
      "title": "Serialize a validated configuration list to YAML",
      "topics": [
        "as_yaml"
      ]
    },
    {
      "page": "asset_snapshot",
      "title": "Summarize a simplified asset in one row",
      "topics": [
        "asset_snapshot"
      ]
    },
    {
      "page": "build_lease_table",
      "title": "Stylised rent table (lease cash-flow)",
      "topics": [
        "build_lease_table"
      ]
    },
    {
      "page": "cf_compute_levered",
      "title": "Equity cash flows and metrics in the presence of debt",
      "topics": [
        "cf_compute_levered"
      ]
    },
    {
      "page": "cf_make_full_table",
      "title": "Assemble the full cash-flow table (discounted cash flow and debt)",
      "topics": [
        "cf_make_full_table"
      ]
    },
    {
      "page": "cfg_explain",
      "title": "Explain effective parameters after normalization",
      "topics": [
        "cfg_explain"
      ]
    },
    {
      "page": "cfg_missing",
      "title": "Report missing or inconsistent fields in a config list",
      "topics": [
        "cfg_missing"
      ]
    },
    {
      "page": "cfg_normalize",
      "title": "Normalize YAML into Discounted Cash Flow (DCF) and debt parameters",
      "topics": [
        "cfg_normalize"
      ]
    },
    {
      "page": "cfg_validate",
      "title": "Validate YAML configuration structure",
      "topics": [
        "cfg_validate"
      ]
    },
    {
      "page": "compare_financing_scenarios",
      "title": "Compare three financing structures on a common Discounted Cash Flow (DCF) base",
      "topics": [
        "compare_financing_scenarios"
      ]
    },
    {
      "page": "compute_equity_invest",
      "title": "Compute equity invested at t0 (acquisition costs already included in acq_price)",
      "topics": [
        "compute_equity_invest"
      ]
    },
    {
      "page": "compute_leveraged_metrics",
      "title": "Levered summary (equity cash flows and equity metrics)",
      "topics": [
        "compute_leveraged_metrics"
      ]
    },
    {
      "page": "compute_noi_y1",
      "title": "Quick computation of year-1 NOI",
      "topics": [
        "compute_noi_y1"
      ]
    },
    {
      "page": "compute_unleveraged_metrics",
      "title": "Unlevered summary (project metrics)",
      "topics": [
        "compute_unleveraged_metrics"
      ]
    },
    {
      "page": "cre_glossary",
      "title": "Glossary of CRE finance and modelling terms",
      "topics": [
        "cre_glossary"
      ]
    },
    {
      "page": "dcf_add_noi_columns",
      "title": "Explicitly standardise GEI and NOI columns in a Discounted Cash Flow (DCF) cash-flow table",
      "topics": [
        "dcf_add_noi_columns"
      ]
    },
    {
      "page": "dcf_calculate",
      "title": "Unlevered discounted cash flow model for a commercial real estate asset",
      "topics": [
        "dcf_calculate"
      ]
    },
    {
      "page": "dcf_read_config",
      "title": "Read a configuration YAML",
      "topics": [
        "dcf_read_config"
      ]
    },
    {
      "page": "dcf_spec_template",
      "title": "Minimal specification template for a Discounted Cash Flow (DCF) case",
      "topics": [
        "dcf_spec_template"
      ]
    },
    {
      "page": "dcf_write_yaml_template",
      "title": "Write a commented YAML template for users to edit",
      "topics": [
        "dcf_write_yaml_template"
      ]
    },
    {
      "page": "deal_cashflows",
      "title": "Extract standard cash-flow tables from a deal result",
      "topics": [
        "deal_cashflows"
      ]
    },
    {
      "page": "deal_spec",
      "title": "Define a simplified CRE deal specification",
      "topics": [
        "deal_spec"
      ]
    },
    {
      "page": "deal_to_config",
      "title": "Convert a simplified deal into an engine configuration",
      "topics": [
        "deal_to_config"
      ]
    },
    {
      "page": "debt_built_schedule",
      "title": "Debt schedule for bullet and amortising loans",
      "topics": [
        "debt_built_schedule"
      ]
    },
    {
      "page": "debt_terms",
      "title": "Define simple debt terms for a CRE deal",
      "topics": [
        "debt_terms"
      ]
    },
    {
      "page": "depreciation_spec",
      "title": "Build a depreciation specification for a generic SPV tax engine",
      "topics": [
        "depreciation_spec"
      ]
    },
    {
      "page": "derive_exit_yield",
      "title": "Derive an exit yield from an entry yield and a spread (bps)",
      "topics": [
        "derive_exit_yield"
      ]
    },
    {
      "page": "flag_covenants",
      "title": "Covenant flags after computing credit ratios",
      "topics": [
        "flag_covenants"
      ]
    },
    {
      "page": "forward_value_from_noi",
      "title": "Forward value from next-period NOI",
      "topics": [
        "forward_value_from_noi"
      ]
    },
    {
      "page": "get_cfg",
      "title": "Safe access to nested YAML values",
      "topics": [
        "get_cfg"
      ]
    },
    {
      "page": "guard_rate",
      "title": "Guardrail on an input rate (message if scale likely incorrect)",
      "topics": [
        "guard_rate"
      ]
    },
    {
      "page": "init_debt_fees",
      "title": "Initial debt fees (arrangement fee)",
      "topics": [
        "init_debt_fees"
      ]
    },
    {
      "page": "interest_rule",
      "title": "Build an interest-deductibility rule for the generic SPV tax engine",
      "topics": [
        "interest_rule"
      ]
    },
    {
      "page": "irr_partition",
      "title": "IRR decomposition between operations and resale",
      "topics": [
        "irr_partition"
      ]
    },
    {
      "page": "irr_safe",
      "title": "Robust internal rate of return (adaptive bracketing)",
      "topics": [
        "irr_safe"
      ]
    },
    {
      "page": "lease_effective_rent",
      "title": "Lease effective rent from a stream of lease cash flows",
      "topics": [
        "lease_effective_rent"
      ]
    },
    {
      "page": "lease_event",
      "title": "Define a lease event for the simplified lease-roll API",
      "topics": [
        "lease_event"
      ]
    },
    {
      "page": "lease_roll",
      "title": "Group lease units into a simplified lease roll",
      "topics": [
        "lease_roll"
      ]
    },
    {
      "page": "lease_roll_snapshot",
      "title": "Summarize a lease roll in analyst-friendly tabular form",
      "topics": [
        "lease_roll_snapshot"
      ]
    },
    {
      "page": "lease_unit",
      "title": "Define one lease unit for the simplified lease-roll API",
      "topics": [
        "lease_unit"
      ]
    },
    {
      "page": "leases_tbl_structuration",
      "title": "Aggregate lease events into annual vectors aligned on base_year..base_year+horizon-1",
      "topics": [
        "leases_tbl_structuration"
      ]
    },
    {
      "page": "loss_rule",
      "title": "Build a loss-carryforward rule for the generic SPV tax engine",
      "topics": [
        "loss_rule"
      ]
    },
    {
      "page": "npv_rate",
      "title": "Net present value at constant rate",
      "topics": [
        "npv_rate"
      ]
    },
    {
      "page": "price_from_cap",
      "title": "Acquisition price from an entry capitalization rate",
      "topics": [
        "price_from_cap"
      ]
    },
    {
      "page": "project_terminal_noi",
      "title": "Project the NOI capitalized in the terminal value one year forward",
      "topics": [
        "project_terminal_noi"
      ]
    },
    {
      "page": "renewal_event",
      "title": "Define a renewal or reletting event",
      "topics": [
        "renewal_event"
      ]
    },
    {
      "page": "run_case",
      "title": "Run a full DCF case from a list or a YAML file",
      "topics": [
        "run_case"
      ]
    },
    {
      "page": "run_from_config",
      "title": "Canonical pipeline from a YAML file",
      "topics": [
        "run_from_config"
      ]
    },
    {
      "page": "select_terminal_noi",
      "title": "Robust selection of terminal NOI for resale valuation",
      "topics": [
        "select_terminal_noi"
      ]
    },
    {
      "page": "simulate_shock",
      "title": "Apply scenario shocks to a set of Discounted Cash Flow (DCF) assumptions",
      "topics": [
        "simulate_shock"
      ]
    },
    {
      "page": "styles_breach_counts",
      "title": "Count covenant breaches by style under the bullet-debt scenario",
      "topics": [
        "styles_breach_counts"
      ]
    },
    {
      "page": "styles_break_even_exit_yield",
      "title": "Break-even exit yield for a target leveraged equity IRR, by style",
      "topics": [
        "styles_break_even_exit_yield"
      ]
    },
    {
      "page": "styles_distressed_exit",
      "title": "Distressed exit summary across CRE investment styles",
      "topics": [
        "styles_distressed_exit"
      ]
    },
    {
      "page": "styles_equity_cashflows",
      "title": "Extract leveraged equity cash flows by style",
      "topics": [
        "styles_equity_cashflows"
      ]
    },
    {
      "page": "styles_exit_sensitivity",
      "title": "Exit-yield sensitivity of leveraged equity IRR by style",
      "topics": [
        "styles_exit_sensitivity"
      ]
    },
    {
      "page": "styles_growth_sensitivity",
      "title": "Rental-growth (indexation) sensitivity of leveraged equity IRR by style",
      "topics": [
        "styles_growth_sensitivity"
      ]
    },
    {
      "page": "styles_manifest",
      "title": "Compute the style-by-style manifest for preset scenarios",
      "topics": [
        "styles_manifest"
      ]
    },
    {
      "page": "styles_pv_split",
      "title": "Present-value split between income and resale by style",
      "topics": [
        "styles_pv_split"
      ]
    },
    {
      "page": "styles_revalue_yield_plus_growth",
      "title": "Re-evaluate styles under a yield-plus-growth discounting rule",
      "topics": [
        "styles_revalue_yield_plus_growth"
      ]
    },
    {
      "page": "sweep_sensitivities",
      "title": "Sensitivity grid (rate / exit yield) and monotonicity of ratios",
      "topics": [
        "sweep_sensitivities"
      ]
    },
    {
      "page": "tax_basis_spv",
      "title": "Extract a tax basis from a pre-tax case",
      "topics": [
        "tax_basis_spv"
      ]
    },
    {
      "page": "tax_run_spv",
      "title": "Run a generic SPV-level tax engine",
      "topics": [
        "tax_run_spv"
      ]
    },
    {
      "page": "tax_spec_spv",
      "title": "Build a generic SPV tax specification",
      "topics": [
        "tax_spec_spv"
      ]
    },
    {
      "page": "test_refi",
      "title": "Test the feasibility of a refinancing at year T",
      "topics": [
        "test_refi"
      ]
    },
    {
      "page": "underwrite_loan",
      "title": "Constrained underwriting for a commercial mortgage",
      "topics": [
        "underwrite_loan"
      ]
    },
    {
      "page": "vacancy_event",
      "title": "Define an explicit vacancy event",
      "topics": [
        "vacancy_event"
      ]
    }
  ],
  "_rundeps": [
    "backports",
    "checkmate",
    "cli",
    "dplyr",
    "generics",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "tibble",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "analyst-cheat-sheet.Rmd",
      "filename": "analyst-cheat-sheet.html",
      "title": "Analyst Cheat Sheet",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Goal",
        "The 5 functions to know",
        "The 10 variables that matter most",
        "Quick Start",
        "Typical Workflow",
        "1. Define the deal",
        "2. Run the deal",
        "3. Read the key metrics",
        "4. Extract the tables",
        "Three Common Input Styles",
        "Entry yield known",
        "NOI already known",
        "Rent roll style input",
        "Common Mistakes",
        "When to move to the advanced API"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "before-tax-by-design.Rmd",
      "filename": "before-tax-by-design.html",
      "title": "Before-tax by design: scope, portability, and future tax extensions",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Why the core still stops at the before-tax level",
        "What the core already gives us",
        "What the current tax_rate does and does not do",
        "Why this helps with multi-jurisdiction portability",
        "The current SPV-level tax helper",
        "A working generic SPV tax run",
        "How to read the French fiscal-impact vignette",
        "Summary"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "studycase_buyside.Rmd",
      "filename": "studycase_buyside.html",
      "title": "Case study: buy-side investment memo",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose of this vignette",
        "Setting the scene: the analyst’s brief",
        "Loading and tailoring preset_default.yml",
        "Loading the preset configuration",
        "Run the DCF engine",
        "Pricing and capital structure at t = 0",
        "Purchase price and acquisition costs",
        "Initial LTV and capital structure",
        "All-equity view: project fundamentals",
        "Cash-flow table",
        "Project IRR and NPV",
        "Leveraged view: comparing debt structures",
        "Summary table: all-equity vs bullet vs amortising",
        "Debt schedules",
        "Credit ratios: DSCR and forward LTV paths",
        "Equity cash-flows and equity multiple",
        "Leveraged equity cash-flows",
        "Equity IRR, NPV and multiple",
        "Exploring alternative financing structures",
        "Normalising the configuration and rebuilding the unlevered DCF",
        "Scenario grid and extraction helper",
        "Running the financing variants",
        "Formatting the comparison table",
        "Drafting a short investment memo",
        "Extracting key numbers",
        "Example narrative"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "credit-structures-bullet-vs-amort.Rmd",
      "filename": "credit-structures-bullet-vs-amort.html",
      "title": "Credit structures: bullet vs amortization (baseline comparison)",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Build a case and extract comparison details",
        "Qualitative invariants: bullet vs amort",
        "Interest cover (ICR): confirming the expected ordering",
        "Internal consistency checks on credit ratios",
        "Equity NPV read-across"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "french-investment-tax-impact.Rmd",
      "filename": "french-investment-tax-impact.html",
      "title": "French investment illustration: stylized SPV tax impact",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Start from a French operating case",
        "Translate the French-like SPV into tax inputs",
        "Read the yearly tax table",
        "Compare pre-tax and after-tax equity cash flows",
        "What this vignette captures and what it does not",
        "Summary"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "from-lease-roll-to-dcf.Rmd",
      "filename": "from-lease-roll-to-dcf.html",
      "title": "From lease roll to DCF",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "1. Build a lease roll",
        "2. Turn the lease roll into a deal",
        "3. Run the analysis",
        "4. Read the operating table"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started: checking a run_case() object",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "1. Build a case",
        "2. Exit occurs once at the final year (all-equity)",
        "3. IRR identity (all-equity): IRR is the root of NPV = 0",
        "5. Discount factor monotonicity",
        "6. Sanity checks",
        "7. Display a compact summary"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "cre-glossary.Rmd",
      "filename": "cre-glossary.html",
      "title": "Glossary of CRE finance and DCF terms",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Aim",
        "Full glossary",
        "Debt metrics",
        "Using the glossary programmatically"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-01-12 18:50:21",
      "commits": 1
    },
    {
      "source": "investment-styles-panorama.Rmd",
      "filename": "investment-styles-panorama.html",
      "title": "Investment styles panorama: API-only comparison",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Aim of this vignette",
        "A style-by-style manifest",
        "Risk–return cloud: project vs equity IRR",
        "Leverage–coverage map (initial LTV vs min-DSCR)",
        "Covenant flags and breach counts",
        "Robustness to the discounting rule",
        "Time profile of equity cash flows",
        "Value composition: operations vs exit",
        "Exit-yield and rental-growth sensitivities",
        "Exit-yield shock",
        "Rental-growth shock",
        "Break-even exit yield for a target equity IRR",
        "Distressed exit comparison under covenant breach",
        "Export for audit and replication"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "leases-effective-rent.Rmd",
      "filename": "leases-effective-rent.html",
      "title": "Leases and effective rent: verifying the internal coherence of the income chain",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Building the case and extracting the cash-flow table",
        "Analytical structure of the income chain",
        "Logical consistency checks",
        "Sign and distribution of NOI",
        "Illustration of the income chain",
        "Interpretation"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "methodological-foundations.Rmd",
      "filename": "methodological-foundations.html",
      "title": "Methodological foundations: DCF, effective rent, and underwriting in CRE",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Why the package works at the property-before-tax level",
        "Why terminal value is surfaced explicitly",
        "Why effective rent is treated as an annuitized value",
        "Why underwriting is implemented as binding constraints",
        "Market value, investment value, and what is not yet in the package",
        "Summary"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "reproducibility.Rmd",
      "filename": "reproducibility.html",
      "title": "Reproducibility: identical inputs, identical outputs",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Load and validate a baseline configuration",
        "Two runs under identical conditions",
        "Numerical drift checks",
        "Interpretation"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "sensitivity-sweeps.Rmd",
      "filename": "sensitivity-sweeps.html",
      "title": "Sensitivity skeleton: discount rate and exit yield",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "Baseline configuration and grid design",
        "Running the model on the grid",
        "Optional visualisation: iso-NPV map",
        "Simple checks on the grid",
        "Interpretation"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    },
    {
      "source": "start-in-5-lines.Rmd",
      "filename": "start-in-5-lines.html",
      "title": "Start in 5 lines",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Create a simple asset-level deal",
        "Run the analysis",
        "Inspect the asset snapshot and operating table",
        "Extract the tables you need",
        "Alternative income inputs"
      ],
      "created": "2026-04-10 12:03:26",
      "modified": "2026-04-10 12:03:26",
      "commits": 1
    },
    {
      "source": "yaml-validation.Rmd",
      "filename": "yaml-validation.html",
      "title": "YAML validation: required keys and types",
      "author": "Package cre.dcf",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Purpose",
        "1. Load and validate a correct YAML configuration",
        "Deliberate type violation and controlled failure",
        "Interpretation"
      ],
      "created": "2026-01-12 18:50:21",
      "modified": "2026-04-10 12:03:26",
      "commits": 2
    }
  ],
  "_score": 3.4771212547196626,
  "_indexed": true,
  "_nocasepkg": "cre.dcf",
  "_universes": [
    "kpoigeo"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.5",
      "date": "2026-06-09T06:44:00.000Z",
      "distro": "noble",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "38f3496be17750ee1726c1c318b762355c5e4ae363e2487b551bf36e2a07bbcc",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.0.5",
      "date": "2026-06-09T06:43:53.000Z",
      "distro": "noble",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "cdb4ccba2ae176cf31e8ab4368333ddc08120d413518ccefc8b5158ba5f52b0a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.5",
      "date": "2026-06-09T07:00:47.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "d4e37b435ccf67c88a496dcdde5696a3021d9f1420c704f3785268c3e06a5f4d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.0.5",
      "date": "2026-06-09T07:07:13.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "1699f1fe9a1e33a4b0ac6bef723956238ac7243e41d49162cbe5699976222b0d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.5",
      "date": "2026-06-09T06:44:01.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "a39cc4984d91f724a3f603c9074a80176e370002f0a8c78b0651accab0af2508",
      "status": "success",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.5",
      "date": "2026-06-09T06:43:13.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "dbe84520b60c4f3170389861d861d2892b1dc9a22add61e23f7cd0e00112d2a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.5",
      "date": "2026-06-09T06:43:14.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "4bf049146442c7adbf42c65eb2ff4241027b622776508703f10abff741720856",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.0.5",
      "date": "2026-06-09T06:43:01.000Z",
      "commit": "59f88a16b0e5ce76d19a571dafbfaf97648837ad",
      "fileid": "a162d48dc89b21e74c7417f6fc0c2c54f370b0958519c35366de6cd4e56d925f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/kpoigeo/actions/runs/27188582217"
    }
  ]
}