Methodology
What the model computes, in the order it computes it. Enough to reimplement it, disagree with it, or find a mistake in it.
The one rule
Both sides start with the same cash, and neither is ever handed a dollar the other does not get.
After that, each month the property produces a net cash flow: rent actually collected, less every operating cost, less debt service. If it is negative, the landlord writes a cheque and the investor contributes the same amount to their portfolio. If it is positive, the landlord invests it and the investor contributes nothing — because nothing extra came from anywhere. The property generated it, which is exactly the thing being measured.
So lifetime out-of-pocket is identical on both sides. The model checks this and refuses to report a result if the two ever diverge by more than a rounding error.
Why this is not the rent-vs-buy model
That calculator compares two households who both need somewhere to live, so it equalises their monthly spending. Here neither side needs anything: both are investments, and the question is which does more with the same capital. The landlord's rent is income, not an avoided cost. Do not assume a figure from one page was produced the same way as a figure from the other.
What leverage does
This is the whole point of the comparison. A 25% down payment buys four dollars of appreciating asset per dollar of capital, so modest appreciation on the property becomes a large return on your slice of it.
The same multiplier applies to a decline, and unlike a portfolio the leverage is not optional: the mortgage payment is due whether or not the tenant pays. A portfolio can be left alone through a bad decade; a mortgage cannot. Set appreciation negative and compare a 20% down payment against a 60% one to see the asymmetry.
The monthly loop
Each month, in this order:
- Scheduled rent for the current year, less vacancy, gives rent collected.
- Operating costs are computed against the value at the start of the month, before this month's appreciation.
- The mortgage payment is split into interest and principal.
- Both portfolios grow by one month of investment return.
- The month's cash flow is settled: reinvested if positive, matched by both sides if negative.
- The property appreciates by one month.
- Net worth is recorded for both sides.
Contributions land at month end, so a dollar contributed this month earns nothing this month. The ordering is the same as the rent-vs-buy model's, deliberately.
Two different rate conventions
A US mortgage note rate is a nominal annual rate divided into twelve equal parts. An investment return quoted annually is an effective annual rate, which compounds. Converting them the same way is wrong for one of them.
The ratios
Net operating income is calculated before debt service, which is the convention and the reason a property can have a healthy cap rate and still bleed cash every month: the cap rate does not know what you paid for the mortgage. That is what makes it comparable between buildings, and what makes it insufficient on its own.
Management is charged on rent collected, not scheduled: you do not pay a manager for rent nobody paid.
Which costs follow the property's value
Property tax tracks value by default, because ad valorem assessment genuinely is charged against market value. Insurance and maintenance do not, and that differs from the rent-vs-buy calculator on purpose.
A premium covers rebuild cost, which is the structure; land appreciation does not make a building more expensive to rebuild. And a roof costs what a roof costs. Maintenance and the capital reserve run 2% of value a year here — more than double the rent-vs-buy figure, because a landlord is also funding turnover and replacements — and linking that much cost to market value made the model non-monotone in appreciation: at 8.5% returns, 3% appreciation beat 4%, because the extra cost forced larger monthly top-ups and the investor's matched contributions compounded faster than the extra appreciation was worth.
That is an artifact of the tracking assumption, not a finding. You can turn tracking back on, and the sensitivity matrix will tell you when the grid stops being monotone rather than presenting a misleading picture in silence.
One answer is never the whole answer
Three of the inputs — investment return, property appreciation, rent growth — are not measurements, they are guesses. A single figure computed from a single guess at all three reads as far more certain than it is, so every result also carries the range around it.
The scenario table
The same property under six illustrative rate regimes, with your own assumption slotted in among them and the rows ordered by the gap between investment return and appreciation. Only those three rates change: the price, the rent, the mortgage and every operating cost are held exactly as you entered them, which is what makes the rows comparable.
The gap is the strongest single driver, not a decider. Hold it fixed and change the price, the rent or the mortgage rate and the verdict can still flip either way. Read the table as a gradient for your inputs, not as a rule about gaps.
How much the answer depends on the table
Winning five of six scenarios and winning three of six are reported identically by a headline figure and mean entirely different things, so the split is summarised in words:
- Robust — the verdict holds in at least 80% of the rows.
- Assumption-sensitive — 60% to 80% agree.
- Finely balanced — below 60%, or a dead heat. The result should not be leaned on.
The bands are shares rather than counts, and they are the same bands the rent-vs-buy calculator uses — one definition of “robust”, so the two cannot disagree about what the word means. It measures agreement across rate regimes and nothing else: it says nothing about the price, the rent or the financing, which move the answer at least as much.
Where the line is
The sensitivity matrix sweeps investment return against appreciation and colours every combination by winner, which answers a better question than “what is the answer?”: how far is the answer from changing? If the nearest flip is several points away, the exact rate you assume barely matters. If it is next door, the verdict is balanced on that assumption.
Your own two rates are inserted into the axes if the standard grid misses them, so there is always a cell marking where you sit. The grid also carries a monotone check: higher appreciation can only help the landlord and a higher return can only help the investor, so if linking a cost to market value breaks that ordering, the caption says so rather than presenting a misleading picture in silence.
Short holds
The holding period does not have to be a whole number of years. It can be any number of whole months, because that is what the loop runs, and short holds are punishing: buying and selling costs land on a property that has barely appreciated, and the mortgage has barely amortised. A period that would fall between two months is refused rather than quietly rounded to a different scenario than the one you asked for. The mortgage term is separate and stays in whole years, because that is how the contract is written.
Effective annual investment tax drag
Money not spent on the property is assumed to be invested, and in a taxable account some of that return goes to tax. The tax-drag input is a simplified way to approximate that, applied to both sides — the investor's whole portfolio and the landlord's reinvested cash flow.
It is not a model of capital-gains or dividend taxation. It has no notion of when a gain is realised, what the basis is, or which rate applies, so it overstates the cost of tax on a buy-and-hold position and is about right for dividend drag, which really is annual. Use 0 for a retirement account; roughly 5–15% for a broad index fund in a taxable account. The other two calculators use the same input with the same arithmetic.
Switching the tax model on replaces this entirely.
tax_drag is then ignored — the two are alternative
answers to the same question, and charging both would tax the portfolio
twice. What runs instead is tax on dividends as they are paid, split
between the qualified and ordinary rates; tax on the gains the fund
realises through its own turnover; and one settlement on the deferred gain
when the portfolio is sold, against a basis tracked as contributions.
The property’s own tax treatment
Off by default, and of the three calculators on this site this is the one where that default distorts the answer most, because the tax treatment is a large part of the case for owning a rental at all.
Depreciation, and why it is not a gift
The building is written off over 27.5 years. Not the land, which is never depreciable — so a property in an expensive metro, where land is most of the price, shelters far less than its price suggests. Your assessor publishes the split; the model asks for it.
That deduction shelters income you genuinely received and kept, which is how a property can pay you cash every month and report a loss to the IRS. Interest and every operating cost are deductible too, and unlike a homeowner’s these are business expenses: no standard deduction to clear first, and no SALT cap on the property tax.
Then it is taken back. Every dollar of depreciation claimed returns at sale as unrecaptured section 1250 gain, taxed at up to 25% — a higher rate than the long-term capital-gains rate charged on the rest of the gain. The shelter is a deferral, and part of it is repaid at a worse rate than it was taken at. An integrity check asserts that every dollar deducted over the hold reappears as recapture, because a model that takes the deduction and forgets the clawback reports a tax break nobody receives.
Passive activity loss limits, where the folk wisdom breaks
A paper loss cannot simply be set against your salary. It can only be used through a $25,000 special allowance, which requires active participation and phases out at 50 cents per dollar of income above $100,000, reaching zero at $150,000. Those thresholds are statutory, have not moved since 1986, and were never indexed — so most people on a professional salary now get none of it, however actively they participate.
Losses that cannot be used are suspended, carried forward, and released in full when the property is sold. So the shelter is usually deferred rather than granted, and the page reports how much is still suspended at your horizon rather than letting it look like a benefit you received along the way.
The allowance falls off a cliff, and that is the biggest effect here
On the default scenario, switching tax on moves the verdict toward investing at every income: the landlord pays recapture and capital gains at the end, and the shelter along the way does not cover it.
But the size of that move is not monotonic in income, and its shape is the allowance's. At $125,000 of other income the move is about $1,800 — half the allowance survives and the bracket is high enough for it to be worth something. Above $150,000 the allowance is gone and the move is about $24,000. A $22,000 swing, caused by nothing changing about the property at all.
An earlier version of this page said the verdict reversed outright, favouring the property at $90,000. That was wrong, and it was wrong for a specific reason worth stating: the sale of the property and the liquidation of the portfolio were being taxed as two separate events rather than as one tax year, so each got its own run up through the long-term brackets and its own headroom below the surtax. It understated the landlord by about $8,900 here. Fixed, and every figure above is now asserted by a test rather than written down once.
There is no IRC 121 exclusion here. That is for a home you live in, and this is not one.
Every rule and figure this model uses
Published rather than summarised. A reviewer went through this methodology and listed ten federal rules they could not confirm were implemented; nine were, one was not and has since been added. The only honest answer to that is to show the parameters instead of asserting they are right, so here they are — read from the same table the calculation uses, so what is printed here cannot drift from what was charged. Check them against the revenue procedure yourself.
Every figure in the 2026 table
| Single | Married filing jointly | Married filing separately | Head of household | |
|---|---|---|---|---|
| Standard deduction | $16,100 | $32,200 | $16,100 | $24,150 |
| Additional, per age/blindness box Section 63(f), per qualifying condition and per spouse. | $2,050 | $1,650 | $1,650 | $2,050 |
| Top of the 0% capital-gains band | $49,450 | $98,900 | $49,450 | $66,200 |
| Top of the 15% capital-gains band | $545,500 | $613,700 | $306,850 | $579,600 |
| Net investment income tax threshold 3.8% on the lesser of net investment income and MAGI above this. Not indexed. | $200,000 | $250,000 | $125,000 | $200,000 |
| SALT cap Phased down at 30% of MAGI above the threshold below, never past the floor. | $40,400 | $40,400 | $20,200 | $40,400 |
| SALT phase-down begins | $505,000 | $505,000 | $252,500 | $505,000 |
| SALT floor | $10,000 | $10,000 | $5,000 | $10,000 |
| Mortgage acquisition-debt cap Interest above this is prorated by the share of the debt under the cap, not disallowed. | $750,000 | $750,000 | $375,000 | $750,000 |
| Mortgage insurance premiums, phase-out start Deductible again from 2026. Lost in 10% steps per $1,000 of AGI over this, gone $10,000 later. | $100,000 | $100,000 | $50,000 | $100,000 |
| Principal-residence exclusion (section 121) Owned and lived in for two of the last five years. Not indexed since 1997. | $250,000 | $500,000 | $250,000 | $250,000 |
Ordinary income rate bands
| Single | 10% to $12,400, 12% to $50,400, 22% to $105,700, 24% to $201,775, 32% to $256,225, 35% to $640,600, 37% above |
|---|---|
| Married filing jointly | 10% to $24,800, 12% to $100,800, 22% to $211,400, 24% to $403,550, 32% to $512,450, 35% to $768,700, 37% above |
| Married filing separately | 10% to $12,400, 12% to $50,400, 22% to $105,700, 24% to $201,775, 32% to $256,225, 35% to $384,350, 37% above |
| Head of household | 10% to $17,700, 12% to $67,450, 22% to $105,700, 24% to $201,750, 32% to $256,200, 35% to $640,600, 37% above |
Not filing-status dependent
| Residential recovery period | 27.5 years, straight line, building only |
|---|---|
| Depreciation recapture ceiling | 25% on unrecaptured section 1250 gain |
| Passive loss allowance | $25,000, phasing out between $100,000 and $150,000 of MAGI at 50% per dollar |
| Section 199A deduction | 20% of qualifying rental income, when the rental is a trade or business |
Both sales land in the same tax year, and that is the worst case
The model values everything at the horizon, which means the house sells and the portfolio is liquidated in the same twelve months. A tax year has one set of capital-gains brackets and one surtax threshold, so the two gains stack on each other — the second one starts where the first left off, part way up the tiers.
That is correct, and it is also the most expensive way to do it. It is what the “score everything at the horizon” convention implies, not what somebody with a choice would do. Two things anybody can actually do about it, both switched off by default so the headline stays the conservative figure:
- Split the years. Complete the sale in December and start selling the portfolio in January. Two sets of brackets, two lots of surtax headroom, and nothing else about the decision changes. It only helps a household with two realisations to separate, so it does most for an owner whose gain outran the exclusion, and nothing at all for a renter.
- Spread the liquidation. Sell the portfolio down over several years instead of all at once, so each year gets its own run through the 0/15/20 tiers. Spreading a $1.1m gain over ten years takes its tax from about $229,000 to about $148,000.
Read the second one carefully before reaching for it. Spreading helps whoever holds the larger portfolio, and on this page that is the renter, whose entire net worth is in one. On a $900,000 house held thirty years, spreading both households' sales over five years moves the verdict about $91,000 toward renting. It is a real saving and it is not an argument for buying.
What is deliberately not offered
- Tax-loss harvesting. It needs losses, and a deterministic compounding path never has any. Approximating it as a haircut on the gain would be inventing a number.
- Donating appreciated shares. It avoids the gain by giving the money away, so it does not belong in a comparison of what you end up owning.
- A 1031 exchange defers a rental's gain indefinitely — but the landlord never receives the cash, and the two sides stop being comparable.
- Realising in a low-income year, by retiring first and selling afterwards. Real, and out of reach here: the model holds one income and one marginal rate across the whole horizon. This is the largest thing the tax model cannot see.
- Never selling at all is offered, and is the biggest lever of the lot. Switch off “portfolio is sold at the horizon” and the deferred gain is never realised, which is what happens if it passes at death with a stepped-up basis.
Not modelled: 1031 like-kind exchanges, which defer the whole bill; cost segregation and bonus depreciation, which pull deductions forward substantially; real-estate professional status, which lifts the passive limits; opportunity zones; and the step-up in basis at death, which erases recapture and the gain together. Capital improvements are expensed along with the capital reserve rather than capitalised and depreciated — that takes the deduction sooner than the law allows and skips the basis increase, two errors in opposite directions that partly cancel. Section 199A is applied as a flat 20% when you switch it on, without the income thresholds and wage limitation above them. State conformity is assumed.
What would have to be true?
The calculator answers “given these assumptions, what happens?”. The solver answers the question underneath it: how wrong would you have to be before this flips? A verdict of a few hundred thousand dollars tells you nothing about whether it survives a three-point miss on one input. A threshold does.
Each row takes one input, holds every other one exactly as you entered it, and finds the value where the verdict changes. Rows are sorted closest-first, so the top one is the assumption your answer is least safe from.
It is deliberately one input at a time. Several small misses together can flip an answer that no single one of them would, and nothing here accounts for that — the sensitivity matrix is the two-input version, and beyond that you are into the Monte Carlo.
Where an input has no threshold, that is reported too, and it is often the more useful result: it means that input cannot change your mind across its whole plausible range, so it is not worth arguing about.
The search is a bisection rather than anything cleverer, because the objective is not smooth — value-linked costs have kinks, loans pay off, PMI switches off — and bisection needs only a sign change, which is exactly what is being looked for. Inputs that live on a grid are snapped to it at every step: a holding period exists only on whole months, so the answer is the first month you could actually enter where the verdict really is different.
What actually determines the answer
The tipping points say how far you are from the boundary. A separate question is which inputs carry the most weight at all — the one you should go and research before deciding.
These are not the same, and they genuinely disagree. An input can move the answer by six figures and still never flip it, because your estimate is nowhere near the boundary. Another can be nearly decisive despite a modest effect, because the answer is balanced on it.
Ranking raw sensitivity would be meaningless: one unit of a mortgage rate is a hundred percentage points and one unit of a price is a dollar. So each input is nudged by a plausible amount of error instead — a percentage point on a rate, 5% on a price, a year on a horizon — and the question becomes: if each of these were off by about as much as you could reasonably be off, which moves the answer most?
The nudge sizes are a judgement, they are printed with the result, and changing them can change the order. The measurement is a centred difference, taken in both directions and halved, so a kink in the model — a loan paying off, PMI switching off — is not mistaken for sensitivity.
What to research first
The impact ranking says which input carries the most weight; the tipping points say where each one flips. Read separately they are two tables. Joined, they are an instruction:
Your decision is most sensitive to rent growth. If it turns out to be above 3.98%, the answer changes — 0.98 percentage points away. Go and find that number before you decide anything else.
That is a more useful thing for a calculator to produce than an answer, because it names the uncertainty you actually need to resolve rather than papering over it with a figure to two decimal places.
Distances for rates are quoted in percentage points, not as a relative share. A return moving from 8.5% to 6.5% is "23% lower", which is true and unusable: nobody holds a view about their return being 23% lower. They hold one about two points. Money and time keep the relative figure, where it reads naturally.
Sharing a scenario, and whose assumptions it is
Everything you change is carried in the page’s address, so a result can be bookmarked or sent to somebody and it will open exactly as you left it. Only inputs that differ from the shipped defaults are encoded, which keeps the link short and means the parts you never touched continue to track the model rather than being frozen at whatever the defaults were the day you sent it.
Each calculator here asks for far more inputs than anybody changes, so every result also says how many are still ours. A verdict computed from three edited fields and twenty-seven of our defaults is a statement about our assumptions wearing your name, and the page says so rather than letting the number imply otherwise.
Checks that must pass
- Equal outlay. Both sides' lifetime out-of-pocket must match. This is the rule the comparison rests on, so it is verified rather than assumed.
- Principal is conserved. Repaid principal plus the remaining balance equals the original loan, at every point.
- Inputs are finite. NaN and infinity are rejected up front, as are negative rents and negative costs, which would otherwise produce a confident and meaningless answer.
What is not modelled
Tax is off by default, and everything above is then pre-tax. That default matters more here than on the other two calculators, because the tax treatment is a large part of the case for owning a rental at all. Switch it on and the model adds:
- Depreciation. The building — not the land, which is never depreciable — written off over 27.5 years. That deduction shelters income you genuinely received and kept.
- Depreciation recapture at sale, at up to 25%, which claws it back at a rate above the capital-gains rate. The shelter is a deferral, and part of it is repaid at a worse rate than it was taken at.
- Mortgage interest and every operating cost as deductible expenses. Unlike a homeowner’s, these are business expenses: no standard deduction to clear first, and no SALT cap on the property tax.
- Passive activity loss limits. A paper loss can only offset your salary through a $25,000 allowance that phases out between $100,000 and $150,000 of income — thresholds fixed since 1986 and never indexed. Above them the shelter is deferred, not granted, and the page says so.
- Section 199A, when the rental qualifies as a trade or business.
- Capital gains on the sale, and on the investor’s portfolio on the other side.
These do not cancel. Which way it nets out depends on income, and not in a straight line. On the default scenario tax favours investing at every income — the landlord pays recapture and capital gains at the end, and the shelter along the way does not cover it. But the size of that swing follows the allowance: about $1,800 at $125,000 of other income, where half of it survives and the bracket is high enough to make it worth something, against roughly $24,000 once it is gone above $150,000. That cliff is caused by nothing changing about the property at all, which is why it is worth computing rather than asserting.
It is a marginal-rate model of one household in a steady state, with one year’s law held constant across the whole hold. No AMT, no credits, no state brackets, no 1031 exchange, no cost segregation, no real-estate professional status, and no step-up at death. Capital improvements are expensed along with the capital reserve rather than capitalised and depreciated. Good enough to change a decision; not good enough to file with, and not a substitute for talking to somebody about your own situation.
Also not modelled: tenant damage beyond the maintenance and capital reserves, eviction costs and the lost months that come with them, the labour of being a landlord, refinancing, and the concentration risk of putting a large share of your net worth into one building on one street. Rent grows smoothly here; real rents move in steps, and real repairs arrive in lumps.
Every rate in the model is nominal. The optional inflation input restates the final answer in today's dollars for reporting only; it does not enter the simulation, because doing so would double-count.