| Occupancy % | Yardi RentRoll or OccupancyAnalytics report → leased SF / total SF, by property. Pull monthly snapshot. |
| T-12 NOI | Yardi IncomeStatement at NOI line, trailing 12 months, rolled up by property. Same source for budget comparison via BudgetComparison. |
| NOI variance | BudgetComparison report — Actual NOI minus Budget NOI, $ and %. YTD basis. |
| AR > 60 days / Top offenders | Yardi AgedReceivables by tenant, with property tag. Filter for >30 days and rank by balance. This replaces the aggregate aging bucket donut. |
| DSCR | NOI / annual debt service. Debt service pulled from loan tape (Egnyte → Loan Summary spreadsheet) until/unless we move it into Yardi. Flag covenant threshold per loan. |
| Rollover next 12mo | Yardi LeaseExpiration report — sum of leased SF expiring within 12 months / total leased SF, by property and aggregate. |
| Watchlist logic | Composite rules engine. Property flags red if any of: occupancy < 85%, DSCR < 1.20x, NOI vs budget < -10%, top tenant > 30% of property rent with rollover in 12mo. Amber if any single threshold is within 5% of trigger. |
| Segment | Value | Share | # Props |
|---|
PROPERTIES[].lat / .lng, this map will use them automatically.
| Color | Property | Type | Market | State | Fund | Total SF | Occ % | T-12 NOI | OpEx PSF | vs Budget | DSCR | 12mo Rollover | Mkt Value |
|---|
| Line items (revenue/OpEx) | Yardi IncomeStatement at GL-account granularity, monthly, with property tag. Map GL accounts to the line item categories shown here (chart of accounts roll-up table to be defined). |
| Multi-property rollup | Pull statements per property and sum at line-item level. Rollup is done client-side so any filter combination works without re-querying. |
| CapEx / TI / LC | Pulled from Yardi CapitalProjects or fixed asset schedule, not P&L. May also come from Egnyte CapEx tracker depending on what's the source of truth. |
| Debt Service | Loan tape (currently Egnyte). Monthly P&I per loan, mapped to property. Will need a property-to-loan mapping table. |
| Budget column (not built) | Add a toggle to show Budget alongside Actuals. Source: Yardi BudgetComparison report, same GL roll-up. |
| Actual (T-1, T-3, T-12) | Real for all properties with Yardi trial balances. Sourced from the same TB-derived pipeline as the Income Statement tab (REAL_IS_STRUCT). T-12 = May 2025–Apr 2026. T-3 = Feb–Apr 2026. T-1 = Apr 2026. Monthly slices are exact (per-month TB data, not distributed). COA matches the IS tab exactly. |
| Bus Plan (Budget) | Real for 54 properties. Sourced from Yardi 12-month accrual budget xlsx files (Yardi Data/2025 Budgets/ and Yardi Data/2026 Budgets/). T-12 blends May–Dec 2025 from 2025 budgets + Jan–Apr 2026 from 2026 budgets. Account subtotals (-999 accounts) map directly to IS tab COA labels. Properties without budget data fall back to ±5% procedural. |
| Underwriting (Proforma) | Real for 40 of 56 properties. Sourced from Pereview underwriting models in Egnyte (/.Proformas - Final/Pereview Uploads/). Full history from each property's acquisition date to the latest TB month; T-12/T-3/T-1 slices align to the actual TB window. Vacancy and abatement netted into Commercial Rental Income. All expenses mapped to recoverable (NNN assumption). HVAC mapped to Repairs & Maintenance. Properties missing proforma data fall back to procedural: Royal Tech (all 8), Westwood Business Park, Diplomacy, Midway, Richardson Tech, 151 Tech, Holcomb Woods, Brookside, Westland Tech, Clay Hempstead, 1912 County Line, Split-Trail, Longview. |
| Source file | /Yardi Data/Tenancy Schedule - All Props - 2026.05.17.xlsx (Report1 sheet). Generated from Yardi via the "Tenancy Schedule I" report for property group epa_aum, as-of 5/17/2026. |
| Fields shown | Property · Suite · Tenant · Lease Type · SF · Lease From · Lease To · Term (months) · Tenancy (years) · Monthly Rent · Annual Rent · $/SF Annual · Recoveries $/SF · Misc $/SF · Security Deposit · LOC/Bank Guarantee · Status (computed: Current / Rolling 12mo / Expired) |
| Refresh cadence | Re-pull the Tenancy Schedule from Yardi monthly (or after material lease activity) and overwrite the file. Re-run the rent roll data build script to regenerate rentroll_data.js. |
BalanceSheet export per property| Monthly balance sheet snapshots | Yardi BalanceSheet report at GL-account granularity, run for each month-end. Pull 13 month-ends (Apr'25 - Apr'26) to compute YoY changes. |
| Asset categories | GL roll-up: 1100-1199 cash, 1200-1299 receivables, 1500-1799 real estate (land, buildings, TI), 1800-1899 accumulated depreciation, 1900-1999 other assets. |
| Liability categories | GL roll-up: 2100-2199 AP, 2200-2299 accrued, 2300-2399 deferred revenue (prepaid rent), 2400-2499 security deposits, 2500-2599 mortgage payable. |
| Equity categories | GL 3000-3999. Member contributions, distributions (cumulative), retained earnings, and current period net income roll into ownership equity. Net income from IncomeStatement close at month-end. |
| Mortgage Payable (cross-check) | Reconcile Yardi GL balance against loan tape in Egnyte each month. Variance threshold > 0.5% should flag for accounting review. |
| Contra-mortgage / loan costs | Capitalized loan costs amortize over loan term — pull from 1850-ish contra-asset GL. Net mortgage shown on dashboard = Mortgage Payable - Contra. (Same logic as epa-pull-cash-mortgage skill.) |
| Multi-property rollup | Pull BS per property monthly and sum at line-item level. Same client-side rollup pattern as the income statement tab. |
| Starting point | Net Income (TB account 9999-998), summed across all 12 months in the T-12 window. |
| Non-cash adjustments | D&A (7370-999) + Impairment (7390-999) + Unrealized Gain/Loss (7600-999) + GAAP/Non-Cash Interest (7825-999), summed across T-12. |
| Working-capital changes | BS subtotals end-of-T-12 minus start-of-T-12, with sign convention: asset increase = cash use, liability increase = cash source. Accounts used: AR (1499-999), Prepaid (1899-999), AP & Accrued (2399-999), Deposits (2850-999), Unearned (2875-999). |
| Investing | Gross CapEx outflows from BS deltas (excluding accumulated depreciation, which was added back above): Land (1635-999), Building & Improvements (1649-999), CIP (1611/1614/1621/1629-999), Intangibles (1729-999), Lease Commissions (1745-999), Furniture & Equipment (1870-999). |
| Financing | BS deltas: Total Debt (2199-999) — increase = drew on loan, decrease = paydown. Related-party debt (2205-999). Capital Contributions (3100-999). Distributions (3300-999) — growth = more paid out, sign flipped. Intercompany (3020-999). |
| Reconciliation | Computed Net Change = Operating + Non-Operating. Actual Net Change = Δ Operating Cash subtotal (1109-999) end - start. Variance = Computed - Actual. Flagged red if |variance| > $1K — usually means transfers to/from reserve cash (1110-999), restricted cash (1199-999), or an account not yet mapped into the CF logic. |
| Year | Portfolio Value | YoY Change | Properties Valued |
|---|
| Balance | Pulled from Yardi TB account 2140-999 (Mortgage Payable) for the latest available month. Falls back to loan tape balance where TB data is unavailable. |
| Pool loans | BankUnited Fund I Seven, DFLEX (Wells Fargo), Bentley (Wells Fargo), and Royal Tech (Situs CMBS) are cross-collateralized pools. Balance shown is the sum of selected properties' TB allocations within each pool. |
| DSCR | T-12 NOI ÷ annualized debt service (12 × monthly P+I). For IO loans, debt service = interest only. |
| Fixed/Variable | All current loans are fixed-rate or swap-fixed. Variable = SOFR/LIBOR-indexed floating without a swap in place. |
| File | Yardi Deal Manager — Leasing Activity Report as of —. Pulls last 3 months of deal activity across all stages. |
| Stages | Executed = signed leases · Negotiation = lease being drafted/negotiated · Proposal = proposal sent · Tour = tour scheduled/completed · Lead = initial inquiry |
| NER | Net Effective Rent ($/SF/yr) — accounts for free rent and is Yardi-computed per deal. |
| Asset Class | Deals | Total SF | TI Cost ($) | TI ($/SF) | MR Cost ($) | MR ($/SF) | TI + MR ($) | TI + MR ($/SF) | Avg Base Rent | Avg NER |
|---|
| Deal Type | Deals | Total SF | TI Cost ($) | TI ($/SF) | MR Cost ($) | MR ($/SF) | TI + MR ($) | TI + MR ($/SF) | Avg Base Rent |
|---|
| Property | Asset Class | Deals | Total SF | TI ($) | TI $/SF | MR ($) | MR $/SF | TI+MR ($) | TI+MR $/SF |
|---|
| Exclude | Property | Class | Tenant | Suite | SF | Deal Type | Project Type | LCD | LXD | Base Rent | NER | TI ($) | MR ($) | TI $/SF | MR $/SF |
|---|
| File | TI UPDATED MODEL_v18.4.0.xlsm · tab 2.0-Activity Inputs · 245 deals |
| Asset Classes | From tab 3.0-Asset Classification. Flex Industrial = 20–40% office; Flex = 40–60% office; Industrial = <20% office. |
| Costs | TI ($) and Make Ready ($) are actual committed/incurred amounts per VTS / project tracker. $0 = As-Is or no spend. |
⚠ Tab in Progress — Data not Validated
Projected TI from Argus business plans vs. actual TI + Make-Ready spend (TIMR). Matched suite-primary on overlapping suite numbers; actual TI+MR aggregates every TIMR line for a suite (lease row + separate Make-Ready row).
| Year | Projected TI | Actual TI+MR | Variance | Var % |
|---|
| Property | Projected TI | Actual TI+MR | Variance | Coverage |
|---|
| Property | Suite | Yr | Status | Match | Projected Tenant | Proj TI | Proj $/SF | Actual Tenant(s) | Actual TI+MR | Act $/SF | Variance | Var % |
|---|
Argus business-plan projected leases for the 2-year plan window vs. actual outcomes from the current tenancy schedule. 2025 BP covers 2025–2026; 2026 BP covers 2026–2027.
| Year | Events | Leased | Not Leased | Proj $/SF | Act $/SF | Var $/SF |
|---|
| Property | Events | Leased | Proj $/SF | Act $/SF | Var $/SF |
|---|
| Property | Suite | SF | Yr | Projected Tenant | Expiration | Proj Start | Outcome | Actual Tenant | Proj $/SF | Act $/SF | Rent Var | Actual Lease Term |
|---|
| Source folder | Source Data/Tenancy Schedules/ — one Yardi Tenancy Schedule export per month-end date. |
| Metric | Physical occupancy = occupied SF ÷ total SF. A suite is "occupied" when the tenant row is not blank/VACANT. |
| Build script | scripts/build_occupancy_history.py · Output: Dashboard Files/occupancy_history.js |
| Adding months | Drop a new Tenancy Schedule export into the source folder (any supported filename pattern) and run refresh.py. |
| Property | Fund | Leasing Team | Senior AM | Asset Manager | Analyst | PM | Accountant |
|---|