Net income kept each month, after operating costs, CapEx & debt service
{{ p.top }}
{{ p.m }}
Of every income dollar{{ niMarginTxt }} kept as net income
Income {{ incBig }}NOI {{ noiBig }}Debt {{ debtBig }}
How rent became income
Rent roll → what stayed in the business · {{ periodShort }} · click any line to see the doors behind it
{{ r.label }}{{ r.chev }}
{{ r.val }}
{{ wfPanel.title }}{{ wfPanel.sub }}
✕ Close
{{ p.name }}{{ p.val }}
No doors match
Income, expense & loss trends, month on month
Pick a line, then drill into the doors behind it — sorted so the vital few show first
{{ c.label }}
{{ othersChip.label }}{{ othersChip.caret }}
{{ o.label }}{{ o.check }}
{{ trendName }} · monthly trend{{ trendCur }}
{{ p.top }}
{{ p.m }}
{{ trendNote }}
By door · {{ periodShort }}
{{ paretoNote }}
{{ p.rank }}
{{ p.name }}{{ p.share }}{{ p.val }}
{{ trendBtn.label }}
{{ brEyebrow }}
{{ brHeadline }}
{{ brSubhead }}
{{ brALabel }}
{{ brATxt }}
→
{{ brBLabel }}
{{ brBTxt }}
CHANGE
{{ brDeltaTxt }}
Story
Every line item
{{ brChartTitle }}
adds to net incomereduces net incomeincome level
{{ t.label }}
{{ c.val }}
{{ c.name }}
{{ c.actuals }}
{{ b.label }}{{ b.amt }}
{{ brFootnote }}
WHAT HAPPENED
{{ brStory1 }}
{{ brStory2 }}
{{ brStory3 }}
BIGGEST LINE-ITEM SWINGS
{{ s.label }}{{ s.amt }}
THE FORCES AT WORK
{{ a.label }}{{ a.amt }}
Net change in net income{{ brNetAmt }}
Reconciles to the ledger
TIED OUT
✓
{{ ck.t }}
{{ ck.s }}
{{ brNoneMsg }}
{{ periodTitle }}
{{ story }}
{{ story2 }}
Needing attention
{{ attSub }}
{{ c.label }}
{{ attDesc }}
{{ p.name }}{{ p.val }}
{{ f.label }}
{{ attEmptyMsg }}
{{ attBtn.label }}
Each door shows the metric behind the selected flag, for the period in view. Rules: rent below statutory (tax · ins · HOA) + interest · (repairs + turns + other opex) > 20% of that door's rent · repairs > 2× trailing monthly average · vacancy or collection loss ≥ 1 month of scheduled rent · negative net income excluding CapEx.
Carrying the portfolio
{{ topSub }}
{{ c.label }}
{{ p.name }}{{ p.val }}
No doors in this bucket for {{ periodShort }}.
{{ topBtn.label }}
Rent increases
{{ rincSub }}
{{ p.name }}{{ p.val }}
No rent increases in {{ periodShort }}.
{{ rincBtn.label }}
Rent decreases
{{ rdecSub }}
{{ p.name }}{{ p.val }}
No rent decreases in {{ periodShort }}.
{{ rdecBtn.label }}
The full statement
Click any account to see the doors behind it
MONTHS{{ tselSummary }}▾
{{ o.label }}{{ o.check }}
Pick exactly 2 months to see a Δ comparison
Expand allCollapse all
ACCOUNT
{{ h }}
{{ row.chev }}{{ row.label }}
{{ cell.t }}
{{ row.drill.note }}
← Back to top 7
{{ dr.name }}
{{ cell.t }}
No doors match
Built from the general ledger upload, {{ dataSpan }} actuals. Amounts in USD; negatives in parentheses. Collection loss is shown as a deduction from income, after vacancy loss. In the waterfall, every bar hangs off the running total: income lines step scheduled rent up or down into total income, then expense lines cascade down to what was kept. CapEx sits above NOI; only debt service is below the line. Click any point on a chart to jump to that month; filters allow multiple selections.
Loading general ledger…
Couldn’t load the general ledger
{{ loadError }}
Retry
Check that pl-data.json sits next to this file and is valid JSON, then retry.