Skip to Content
MoneyHow Financials Work

How Estavo Calculates Financial Figures

Every number in Estavo — every KPI card, every report total, every chart bar — derives from a single source of truth: the transaction ledger. This page explains exactly how each figure is computed so you understand what’s included, what’s excluded, and why your Estavo totals may differ from your bank account.


The Foundation: One Ledger, Two Directions

All financial data in Estavo starts from the Transaction table. Every transaction has a direction:

DirectionMeaningExamples
CreditMoney coming inAirbnb payout, monthly rent, security deposit received
DebitMoney going outMortgage payment, insurance premium, utility bill, repair invoice

The golden rule: Only Confirmed transactions count in any financial total. Draft and Void transactions are excluded from all calculations.

StatusCounts in totals?When it’s created
Draft❌ NoAuto-generated by an obligation template; not yet reviewed
Confirmed✅ YesReviewed and accepted — either manually entered, confirmed from a draft, or CSV-imported
Void❌ NoCancelled/removed; preserved for audit trail

Obligation-generated drafts don’t count until you confirm them. If the Today view shows pending items or your totals seem low, check Money → filter Status: Draft to see what’s waiting for your review.


Total Income

Definition: Sum of all Confirmed Credit transactions in the selected period.

Total Income = SUM(amount) WHERE direction = CREDIT AND status = CONFIRMED AND date BETWEEN periodStart AND periodEnd AND orgId = [your organization]

What’s included:

  • STR booking payouts (Airbnb, VRBO, Direct, etc.)
  • Monthly long-term rent received
  • Any other credit transaction (late fees, security deposits, insurance reimbursements)

What’s not included:

  • Draft transactions (unconfirmed obligation auto-generates)
  • Void transactions
  • Debit transactions of any kind

Total Expenses

Definition: Sum of all Confirmed Debit transactions in the selected period.

Total Expenses = SUM(amount) WHERE direction = DEBIT AND status = CONFIRMED AND date BETWEEN periodStart AND periodEnd AND orgId = [your organization]

What’s included:

  • Mortgage payments entered as transactions
  • Insurance premium payments
  • Utility bills (Spectrum, Comcast, propane, water, trash)
  • Pool service, HVAC, elevator, landscaping
  • Property tax payments
  • Repairs, supplies, advertising

Property-level vs. unit-level costs both count:

  • Shared costs (mortgage, insurance, HOA) attach to the property — counted in the org total
  • Unit-specific costs (cleaning after a checkout, unit repair) attach to the unit — also counted

Net P&L

Net P&L = Total Income − Total Expenses
  • Positive — cash-flow positive period
  • Negative — expenses exceeded income (common in off-season months for STR portfolios)

Net P&L does NOT include:

  • Depreciation (non-cash; enter it manually as a DEBIT in the depreciation category if your CPA calculates it)
  • Mortgage principal (reducing your loan balance builds equity, it isn’t an expense)
  • Unrealized appreciation

On mortgage payments: A typical mortgage payment includes both principal and interest. Only the interest portion is a Schedule E deductible expense. If you want accurate P&L and Schedule E reporting, record only the interest amount under the mortgage_interest category, not the full payment. Your lender’s year-end Form 1098 shows the interest paid.


Income This Month vs. Previous Month

“This month” = the current calendar month (January 1 through January 31, etc.)

“Previous month” = the calendar month immediately before

Month-over-month change % (the ↑↓ badge):

Change % = ((this month − previous month) / previous month) × 100

Rounded to 1 decimal place. If the previous month was $0, no badge is shown (can’t divide by zero).

Color interpretation:

  • Income ↑ = green (more money coming in)
  • Income ↓ = red (less income than last month)
  • Expenses ↑ = red (costs increased)
  • Expenses ↓ = green (costs decreased)

Income YTD and Expenses YTD

YTD (Year to Date): January 1 of the current calendar year through today.

ytdStart = January 1, 00:00:00 UTC (current year) ytdEnd = now()

This is the number your CPA needs for Schedule E. Estavo’s Schedule E export uses the same YTD window, broken down by category, ready to hand off.


Income and Expenses by Property

Each property card in Portfolio shows income and expenses scoped to that property:

Property Income: All CREDIT CONFIRMED transactions where unitId is one of the property's units OR propertyId = this property Property Expenses: All DEBIT CONFIRMED transactions where unitId is one of the property's units OR propertyId = this property

This means a mortgage payment attached to the property (not a specific unit) is included in property-level expenses. A booking payout attached to Unit A is included in both Unit A’s income and the property’s income.


Obligation vs. Actual Transaction: The Critical Distinction

This is one of the most important concepts in Estavo. Many users confuse obligations (what you expect to pay) with transactions (what you actually paid).

The flow:

1. ObligationTemplate → defines the recurring schedule "Selene Finance mortgage, $3,051.49/month, due on the 15th" 2. System auto-generates a DRAFT Transaction on the due date Amount: $3,051.49 (from the template) Status: DRAFT — does NOT count in any total 3. You review the draft in Money This month's actual pull: $3,048.22 (escrow adjustment) You edit the amount and click Confirm 4. CONFIRMED Transaction is posted to your ledger Amount: $3,048.22 Status: CONFIRMED — NOW counts in Total Expenses

Why the draft step matters: Bills change. Insurance renewals, escrow adjustments, utility rate changes. The draft step means your records reflect what actually happened, not what you expected. You always have the chance to correct the amount before it enters your official ledger.

Drafts don’t count. Confirmed transactions do. If your expenses look lower than expected, check the Draft filter in Money — you probably have unconfirmed obligation drafts waiting.


Occupancy Calculation

“Occupied Today” (shown in the KPI card):

A unit is counted as occupied today if there is a Confirmed Credit transaction (a booking) where:

  • check_in date ≤ today
  • check_out date ≥ today
Occupied Today = COUNT(distinct units) with an active booking crossing today's date Active Units = COUNT(units where isActive = true)

The card shows occupied count and the fraction of active units as context: “3 of 11 active · 7 STR · 4 LTR”


Cash Flow Chart: 12-Month Rolling Window

The chart on the Today view covers the 12 calendar months ending at the current month.

Each bar represents:

  • Income bar (teal): SUM of CREDIT CONFIRMED transactions in that calendar month
  • Expense bar (muted): SUM of DEBIT CONFIRMED transactions in that calendar month

As you add more months of history, the chart becomes more useful for spotting seasonal patterns and year-over-year trends.


Why My Estavo Total Differs from My Bank Balance

Common reasons:

ReasonExplanation
Unentered transactionsTransactions in your bank that haven’t been recorded in Estavo yet
Date differenceEstavo uses the transaction date (when you paid), not the bank settlement date
Mortgage principalIf you record the full mortgage payment as DEBIT, it inflates expenses — only interest is an expense
Security depositsDeposits held in a separate account are liabilities, not income — record them correctly
Unconfirmed draftsDrafts waiting for your confirmation aren’t counted yet
Platform fees nettedIf Airbnb pays you net of their fee, the gross booking amount doesn’t match what hit your bank

Schedule E and YTD: What Your CPA Gets

At tax time, go to Reports → Schedule E Export. This produces:

For each property: Part I — Income Line 3: Rents received = SUM of all CREDIT CONFIRMED for the year Part II — Expenses Line 5: Advertising = SUM of ADVERTISING DEBIT CONFIRMED Line 6: Auto and travel = SUM of AUTO_AND_TRAVEL DEBIT CONFIRMED Line 7: Cleaning/maintenance = SUM of CLEANING_AND_MAINTENANCE DEBIT CONFIRMED ... Line 18: Depreciation = SUM of DEPRECIATION DEBIT CONFIRMED Line 19: Other = SUM of OTHER DEBIT CONFIRMED

The export is grouped by property so your CPA can complete one Schedule E Part I per property. See Schedule E Export for the full walkthrough.


Frequently Asked Questions

A transaction I entered isn’t showing up in my income total. Why?

Check its status. Go to Money, find the transaction, and look at the Status column. If it shows Draft, it won’t count until you click Confirm. If it’s Void, it’s been marked as cancelled.

My expense total seems higher than expected. What’s including extra?

Filter Money by Direction: Debit and Status: Confirmed, then sort by date to see exactly what’s counted. If a mortgage payment includes principal, that’s inflating expenses — see the note above about recording only the interest portion.

Do I have to record every month manually?

No. Set up Obligations for recurring bills and Estavo auto-generates draft transactions on schedule. You still confirm each one (to catch amount changes), but you don’t need to manually create the transaction from scratch each month.

Is Estavo cash-basis or accrual accounting?

Cash-basis. The transaction date field is when the money moved — not when the invoice was issued or the service was rendered. This matches how the IRS expects self-managing landlords to report rental income and expenses on Schedule E.

What does “Income YTD” cover if I started in March?

YTD covers January 1 through today, regardless of when you signed up. If you started in March and only entered transactions from March onward, your YTD total reflects March through today — January and February will show $0 because no transactions exist for those months.