Each month every sponsor sends a rent roll in whatever their property-management system exports — Yardi, RealPage, Entrata, hand-built Excel, or a scanned PDF. A standardisation step (AI model for layout recognition + Python rules for unit/lease fields) lands them in one table; anything it cannot map with confidence goes to a review queue instead of the board.
Physical occupancy (left axis) against weighted average in-place rent (right axis). Dashed line is the underwritten occupancy assumption for the selected properties.
Trailing actual NOI vs the NOI underwritten at closing, worst first. Centre line = on plan; grey code = state.
One file expected per property per month. Blue = mapped automatically with confidence ≥ 0.95; red = exceptions a person had to touch.
Top: units by floor plan. Bottom: leases expiring by month from the standardised lease-end field — the number sponsors most often get wrong in their own exports.
The "ask the data" panel above is built to run on a GPU server inside your own network: an open-weight model over your own documents, with every answer citing the file it came from. No per-seat licence, works offline, and nothing leaves the building.
14 slides on how a private AI server is scoped, secured and rolled out. Click through, or take the PDF.
Worth a conversation? Book 30 minutes with NicholeBI Consulting Services · powerbiconsultingservices.com
