Cross-Cutting Tools

Rent Roll to T-12 Tie-Out

Reconciles a normalized rent roll against a normalized T-12 on a stated, consistent basis (annualized contractual vs recognized accrual; collected cash out of scope) and never forces a tie.

Open GitHub source

No packaged download — skills install from the open-source plugin repo. Read the SKILL.md and bundled files below before you install.

How to install a skill →
01 · Problem

Reconciles a normalized rent roll against a normalized T-12 on a stated, consistent basis (annualized contractual vs recognized accrual; collected cash out of scope) and never forces a tie.

Derived from the skill’s “Skill description” section.

02 · Who & When

Explicit triggers:

  • "tie out the rent roll to the T-12" / "reconcile the rent roll to actuals"
  • "does the rent roll prove the revenue in the operating statement?"
  • "build the NOI bridge from the rent roll" / "revenue leakage check"
  • "reconcile contractual rent to recognized revenue"

Implicit triggers:

  • A normalized rent roll (from rent-roll-to-database) and a normalized T-12 (from t12-to-database / operating-statement-to-database) both exist, and the next step is to prove the revenue inputs that drive NOI before underwriting or IC.

Do NOT activate for:

  • Producing the normalized rent roll itself — use rent-roll-to-database.
  • Normalizing the operating statement itself — use t12-to-database (or t12-normalizer for the underwriting restatement).
  • Rent-roll analysis (rollover, WALT, mark-to-market) — use rent-roll-analyzer.
  • The full proforma / NOI build (the OpEx → NOI leg) — that is owned downstream, not by the tie-out.

Derived from the skill’s “When to Activate” section.

03 · How It's Done Today

Not documented yet for this skill.

04 · What This Skill Changes

JSON: {dimensions, summary, human_review_items, basis, run_id, as_of}.

  • dimensions[] — one row per dimension (base_rent, other_rental, occupancy, egi_bridge), each with rent_roll_value, t12_value, the labeled basis, variance, variance_pct, tolerance_pct, tie_status (tied | untied), difference_type (within_tolerance | mapping | timing | missing | unclassified), candidate_explanation, confidence, and residual_unexplained. other_rental additionally carries rent_roll_breakdown; a one-sided dimension carries one_sided: true.
  • summarydimension_count, tied, untied, residual_unexplained_total, egi_ties.
  • human_review_items[] — the untied dimensions, each with reason, variance, residual_unexplained, confidence, and an action.
  • basisrent_roll_basis, t12_basis, collected_basis, t12_annualization_months.

Derived from the skill’s “Output Format” section.

05 · Risks & Caveats

Not documented yet for this skill.