How does BNBCalc calculate cash flow and returns?
Last reviewed Oct 7, 2026 by Jeremy Werden
Short answer
BNBCalc subtracts operating expenses from revenue to get operating income, then subtracts the mortgage payment and property tax to get cash flow. From there, cash-on-cash return is year-one cash flow, plus one year of revenue growth, divided by the cash you put in, while cap rate is operating income divided by the purchase price.
From revenue to cash flow
Every return in a BNBCalc analysis comes from the same short chain of subtractions:
- Operating income (BNBCalc's version of net operating income) = annual revenue − operating expenses
- Mortgage & Taxes = loan payments + property tax, plus mortgage insurance if you put down less than 20%
- Profit (Cash Flow) = operating income − Mortgage & Taxes
The loan payment is the standard amortizing payment: loan × r ÷ (1 − (1 + r)^−n), where r is the annual interest rate ÷ 12 and n is the number of years × 12.
For a US home, a new Buy analysis starts with 20% down, a 30-year loan at 6%, property tax of 0.99% of the price a year, and closing costs of 3% of the price, while homes in lower-income countries start with a lower rate and property tax. If you drop below 20% down, mortgage insurance switches on at 0.5% of the loan a year. Owned analyses start as paid off, Rent (arbitrage) analyses subtract your rent instead of a mortgage, and Cohost analyses have no purchase or loan at all.
The return metrics
Once BNBCalc has the cash flow, it compares it with the cash you put in. For a Buy analysis, cash invested = down payment + renovations and furnishing + closing costs; for a Rent analysis it's renovations and furnishing + setup costs.
| Metric | How BNBCalc calculates it |
|---|---|
| Cash on Cash Return | (year-one cash flow + year-one revenue growth) ÷ cash invested |
| Cap Rate | year-one operating income ÷ purchase price |
| DSCR (US Buy analyses) | operating income ÷ yearly Mortgage & Taxes. 1.25 or more reads "Strong", 1.0 to 1.25 "Acceptable", below 1.0 "Weak" |
| Return on Investment | total gain ÷ cash invested. Total gain is profit plus whichever boxes you tick: equity (loan principal paid down), appreciation and revenue appreciation are ticked by default, while renovations and furniture isn't |
| Payback Period Days (Rent) | cash invested ÷ year-one cash flow × 365 |
| Owner payout (Cohost) | revenue − cleaning and supplies − your commission (20% by default) |
Two of these work differently from the textbook versions, so keep them in mind when you compare BNBCalc with a spreadsheet. Cash on cash includes one year of revenue growth (3% a year by default), which makes it higher than cash flow ÷ cash invested; set Revenue Appreciation to 0% if you want the plain figure. Cap rate runs higher than a version that treats property tax as an operating expense, because BNBCalc keeps property tax in Mortgage & Taxes instead.
Property appreciation also defaults to 3% a year, and you can change both growth rates with the sliders in Investment Value Over Time.
A worked example
This picks up the illustrative three-bedroom home from the revenue and expense examples: $60,000 of revenue and $27,780 of operating expenses, now with a $400,000 purchase price and every financing default left in place.
| Step | Calculation | Result |
|---|---|---|
| Operating income | $60,000 − $27,780 | $32,220 |
| Loan payment | $320,000 at 6% over 30 years | $1,918.56 a month |
| Property tax | 0.99% × $400,000 | $3,960 a year |
| Mortgage & Taxes | $1,918.56 × 12 + $3,960 | $26,983 a year |
| Profit (Cash Flow) | $32,220 − $26,983 | $5,237 |
| Cash invested | $80,000 down + $8,500 furnishing + $12,000 closing | $100,500 |
| Cash on Cash | ($5,237 + 3% × $60,000) ÷ $100,500 | 7.0% |
| Cap Rate | $32,220 ÷ $400,000 | 8.1% |
| DSCR | $32,220 ÷ $26,983 | 1.19, "Acceptable" |
The $8,500 of furnishing is BNBCalc's default of $2,000 per bedroom, $250 per bathroom (two here) and $2,000 for one living space. As for cash on cash, the year of revenue growth adds almost two points: without it, the figure would be 5.2%.
Return on investment goes further, because over one year it also adds $3,930 of loan principal paid down, $12,000 of property appreciation and $1,800 of revenue growth to the $5,237 of cash flow. That's $22,967 ÷ $100,500, which BNBCalc shows as 22.85%. Keep in mind that more than half of that gain is the assumed 3% rise in the home's value, not cash in your pocket.
The Investor Score
The letter grade on the Short Term Rental card blends the two headline returns:
Score = 15% × (cap rate × 7.692) + 85% × (cash on cash × 5), rounded down
A score of 100 or more is an A+, 75 or more an A, 50 or more a B, 35 or more a C and 20 or more a D; anything lower is an F. The example scores 15% × (8.06 × 7.692) + 85% × (7.00 × 5) = 39, a C. Because cash on cash carries 85% of the weight, the grade mostly tells you how hard your cash is working.
The Long Term Rental card next to it runs the same home as a 12-month lease, with its own math and weights, so the two grades aren't directly comparable.
What these returns don't include
Every figure here is before income tax. The STR Tax Calculator on US Buy and Owned analyses estimates deductions separately, and it's a planning estimate rather than tax advice. There's no line for long-term reserves like a new roof or HVAC system, so put that money into Repairs or Other if you set it aside. Appreciation is the rise in the home's value, with no selling costs taken off. And the 5-year and 10-year Profit views multiply the yearly figures, so revenue growth only shows up in Investment Value Over Time.
Frequently asked questions
Why is BNBCalc's cash-on-cash return higher than cash flow divided by cash invested?
BNBCalc adds one year of revenue growth to the cash flow before dividing, 3% of a year's revenue by default. To see the plain version, set Revenue Appreciation to 0% in Investment Value Over Time.
Why does BNBCalc's cap rate look higher than other calculators?
BNBCalc doesn't count property tax as an operating expense; it sits in Mortgage & Taxes with the loan payment. Operating income is therefore higher than in a calculation that deducts property tax, and so is the cap rate.
Terms in this article
Related articles
Data & methodology
How does BNBCalc estimate operating expenses?
BNBCalc starts a new US analysis with default operating expenses: $440 a month for utilities, $700 of fixed maintenance costs, cleaning at 8% of revenue and a 15.5% host platform fee. You can edit every line, save your own numbers as presets, or have AI suggest costs for the specific property.
Data & methodology
How does BNBCalc estimate revenue for a property?
BNBCalc estimates a property's annual revenue from up to 50 comparable Airbnb, Vrbo and Booking.com homes nearby, using what each could earn if it were bookable all year. The estimate benchmarks a well-run listing rather than the average, landing around the comps' 70th to 75th percentile, and it's gross revenue with cleaning fees included.
Property Calculator
What's the difference between Buy, Own, Rent and Cohost analyses?
BNBCalc has four analysis types. Buy models purchasing a home to run as a short-term rental, with a new mortgage. Own models a home you already own. Rent models rental arbitrage, where you lease a home and list it on Airbnb. Cohost models managing someone else's home for a commission. You choose the type before you run the analysis.
Property Calculator
How do I add or edit expenses?
To edit expenses in a BNBCalc analysis, click the pencil next to Operating Expenses in the Profit box, change any field under Utilities, Maintenance or Management, and click Save. The expense list is fixed, so costs without their own field go under Other. To reuse your numbers on other analyses, save them as a preset.
Data & methodology
BNBCalc data and methodology updates
A dated log of changes to where BNBCalc's data comes from and how its numbers are calculated, newest first. The latest, from October 2026: new property analyses take comps from BNBCalc's own nearby-listing data, open at the 70th percentile of those comps, and start with 8% cleaning and a 15.5% host platform fee.
Was this helpful?