Inspiration

Simple portfolio rent averages can be highly misleading when the composition of a real-estate portfolio changes. Our goal was therefore not simply to predict a number, but to build a rigorous and explainable forecasting methodology that compares units to themselves through time.

What it does

Équinoxe Rent Intelligence forecasts the 2026 rent increase for Collection Équinoxe using historical lease data, effective rents, concessions, renewal/relocation information, property characteristics and historically available external context. Our final definition is a point-in-time same-unit expected contribution measure. For each eligible unit, the system separately estimates:

  • the probability of a lease transition;
  • the conditional effective-rent growth if that transition occurs. The expected contribution is then: c_i = p_i × g_i and the portfolio forecast is based on the median contribution across the eligible cohort. ##How we built it We first audited the Yardi data and reconstructed units using the correct sPropCode + sUnitCode key. We then measured same-unit rent changes instead of relying on portfolio-level averages, explicitly analyzed contractual versus effective rent and concessions, and separated renewals from relocations. All forecasting experiments use point-in-time cutoffs to prevent future leakage. We backtested the methodology on 2023, 2024 and 2025 before producing the 2026 forecast. Instead of selecting a complex model simply because it looked sophisticated, we built specialized forecasting experts: Expert A — Stability: a robust historical anchor designed to remain reliable when more granular information is weak. Expert B — Structure: a hierarchical expert that uses supported property-level structure and automatically falls back when granular information is insufficient. Expert C — Regime: designed to capture recent regime changes only when enough point-in-time evidence exists. A support-aware trust engine determines how much weight each expert receives independently for transition occurrence and conditional growth. An expert with insufficient evidence automatically receives less or zero influence. Importantly, Expert C did not meet its pre-defined qualification requirements for 2026 and therefore received zero weight. We did not relax those requirements after observing the forecast. ##Backtesting and lessons learned We tested the system on 2023, 2024 and 2025 and also investigated unsuccessful approaches. In particular, simple averaging of experts and a building-level shrinkage experiment did not produce a robust improvement. Error analysis showed that the 2024 slowdown in conditional growth and the 2025 transition disruption at Saint-Elzéar could not be reliably anticipated using the point-in-time information available under our methodology. Rather than fitting those historical outcomes after the fact, we document them as limitations. ##2026 result The frozen methodology was applied to 931 candidate units using a December 31, 2025 cutoff. 2026 P1 forecast: 2.445%
  • Downside scenario: 0.781%
  • Base forecast: 2.445%
  • Upside scenario: 4.109%
  • Expected transition occurrence: 94.922%
  • Median predicted conditional growth: 2.566% The scenarios are uncertainty scenarios rather than calibrated confidence intervals. What we're proud of The final number was produced only after the methodology and trust rules were frozen. No parameter was retuned after observing the 2026 result. The project includes reproducible estimate_2026() and backtest() interfaces, automated tests, point-in-time safeguards and an executable final Jupyter notebook. The final test suite contains 212 passing tests. Limitations Only three historical backtest years are available. Some structural experts exhibit correlated errors, historically reconstructed CRM snapshots have limitations, and certain historical regime changes were not predictable from admissible information available at their respective cutoffs. These limitations are explicitly documented rather than hidden or corrected retrospectively.

Built With

Share this project:

Updates

Submission history