How Parcel does the math.

Every number in the app comes from the rules on this page. If a figure surprises you, this is where to check it.

One model

Parcel doesn’t have a rental calculator, a flip calculator and a BRRRR calculator. It has one model: a month by month ledger of cash in and cash out, from closing day to the day you sell. Each strategy is a recipe for filling that ledger. That is why every strategy shows the same numbers and why two deals compare fairly.

Month 0 is closing day. It carries the purchase, closing costs and loan fees. Months 1 onward carry rent, costs, loan payments, repairs and, in the last month, the sale. Every month’s cash flow is what it leaves in your pocket after all of that. Positive means money came to you, negative means you paid.

cash flow (month) = rent collected + other income - operating costs - reserves - loan payments - repairs - purchase and closing (month 0) + refinance proceeds - loan payoffs + sale price - selling costs (last month)

Dollars are kept as decimal numbers rounded to cents when they cross the API. Nothing is computed in your browser; the engine runs on the server, once per change, in well under a millisecond.

Rent and costs

Rent starts the month after you own the place, or after any repairs and lease up you set. It grows once a year by the rent growth rate. The vacancy rate takes its share off the top, every month, as an average: a 5% rate means 5% of each month’s rent is treated as lost, which is the same as 18 empty days a year.

gross rent (month m) = monthly rent × (1 + rent growth) ^ year(m) collected (month m) = gross rent - vacancy + other income vacancy = gross rent × vacancy rate

Costs come in two kinds:

Reserves are money set aside for a roof or a furnace. Parcel takes them out of your cash flow every month, because that is what prudent owners do, even though many calculators leave them out to make the numbers look better.

operating costs = taxes + insurance + HOA + utilities + management + repairs NOI = collected - operating costs cash flow = NOI - reserves - loan payments

Loans

A loan is funded on a given month, charges interest on its balance each month, and is paid off by a refinance, a balloon or the sale. Amortizing loans use the standard level payment. Interest only loans pay interest until they are retired. Points and closing costs are paid at funding.

monthly rate = annual rate / 12 level payment = balance × r / (1 - (1 + r) ^ -n) r = monthly rate, n = months interest (m) = balance (m - 1) × r principal (m) = payment - interest (m)

A loan taken over subject to the seller keeps its original schedule: the balance, rate and months left you enter are what drive the payments. A seller note can amortize, be interest only, or balloon after a set number of years, at which point the full balance comes due.

The five strategies

StrategyWhat goes in the ledger
RentalBuy with a down payment and a mortgage. Optional repairs up front. Rent until you sell at the end of the hold.
BRRRRBuy with a short term loan that covers part of the price and repairs. Fix it, rent it, then after the seasoning period refinance at a share of the new value. The new loan pays off the first one plus refinance costs; whatever is left comes back to you. Rent until you sell.
FlipBuy, repair over a set number of months, then sell after the months it takes to find a buyer. Taxes, insurance, utilities and loan interest run the whole time. No rent.
WholesaleParcel runs the end buyer’s flip in full and solves for the highest price at which the buyer still makes their profit margin. Your fee is that price minus your contract price. The 70% rule (70% of resale value minus repairs) is shown beside it as the rule of thumb flippers use.
Creative financeTake over the seller’s loan on its real schedule, pay the seller some cash, and cover the rest with a note to the seller. Rent until you sell. A balloon on the note shows up as a payoff in that month.

The numbers

The app shows each number in plain words. These are the names a lender or a spreadsheet would use, and exactly how each one is computed from the ledger. The “stabilized year” is the first full twelve months once rent is flowing and the long term loan is in place.

In the appUsual nameHow it’s computed
a month in your pocketCash flowStabilized year NOI, minus reserves, minus loan payments, divided by twelve.
a year on your moneyIRRThe annual rate that makes the present value of every month’s cash flow, including the purchase and the sale, add up to zero. Found by Newton’s method with a bisection fallback, then annualized. Shown as n/a when the cash never comes back.
cash to closeCash to closeEverything paid on closing day: down payment, closing costs, points, and repairs paid up front.
rent covers the loanDSCRStabilized year NOI divided by loan payments. Below 1.0x the rent doesn’t cover the payment.
profitTotal profitThe sum of every month’s cash flow, closing day and sale included.
return on your cashROITotal profit divided by the most cash you had in the deal at any point.
back at the refinanceCash outNew loan, minus refinance costs, minus the loans it pays off.
still in the deal afterCash left in dealCash you had put in by the stabilized month, less what the refinance returned.
times your moneyEquity multipleAll the cash that came to you divided by all the cash you put in.
needs to be rented X% of the timeBreak even occupancyThe occupancy at which collected rent, less the costs that scale with it, just covers fixed costs and loan payments.
cap rate = stabilized NOI / price cash on cash = stabilized cash flow / cash left in deal yield on cost = stabilized NOI / (price + closing + repairs) break even occupancy = (fixed costs + loan payments) / (potential rent × (1 - variable costs / collected rent)) NPV = Σ cash flow (m) / (1 + d) ^ m d = 10% a year, monthly payback = first month the running total is back above zero
Cash on cash uses cash to close plus repairs, not the down payment alone. Calculators that ignore closing costs and repairs overstate it, often by a third.

Working backwards

“What’s the most I can pay and still make 12% a year?” is answered by running the forward model repeatedly and searching for the input that hits the target, using Brent’s method on the exact same code that produces the workspace numbers. There is no separate reverse formula, so the forward and backward answers can never disagree. If no value of the input reaches the target, the app says so instead of inventing one.

What could go wrong

What moves the return most

Each input is nudged down and up on its own (rent and value by 10%, rates by a point, and so on) and the return is recomputed. The inputs are ranked by how far they swing it. The grid does the same for two inputs at once, price against rent.

Ten thousand versions

The simulation draws ten thousand versions of the deal at once, varying several inputs together, and reports how many lose money and what a bad, typical and good year look like (the 10th, 50th and 90th percentiles of the return). The draws:

Nothing drops below zero where that makes no sense. The runs are vectorized, so all ten thousand ledgers take about 150 milliseconds. The seed is fixed per request, so running it twice gives the same answer.

Flags

Parcel raises a flag whenever a deal trips one of these rules. They sit right under the answer.

FlagRule
Rent doesn’t cover the loanDSCR under 1.0x. Under 1.25x is a caution, since most lenders want more room.
Loses money every monthStabilized cash flow is negative.
Borrowing lowers your returnThe cap rate is below the loan rate, so borrowing costs more than the property earns.
Optimistic vacancyVacancy set under 3%.
No reservesReserves set to zero.
Refinance falls shortThe new BRRRR loan doesn’t pay off the first one.
Thin flipProfit under 10% of the resale price.
Balloon dueA seller note comes due in full during the hold.

Where figures come from

When you look up an address, each suggested number is labeled with its source and the app keeps that label next to the number for as long as the deal exists:

Parcel never fills a cost with zero because it doesn’t know it. Missing inputs block the strategies that need them.

The memo

The written memo is drafted by a language model from a table of the engine’s figures for that deal. Before you see it, every dollar amount, percentage and ratio in the text is parsed out and matched against that table at the precision it was written in. If a figure doesn’t match, the memo is sent back once with the mismatches named. If it still doesn’t match, it is shown with the unmatched figures listed, so a made up number can never pass as a computed one.

What it leaves out

Parcel is a projection tool, not advice. The source is public at github.com/ivan-711/parcel, and the engine’s tests check every formula on this page against worked examples.