A home purchase inside the plan swaps your rent line for ownership costs at the buy year: property tax, insurance, maintenance, plus a mortgage whose payment is fixed in nominal dollars, so it declines in real terms while rent would have kept pace with inflation.
What the engine does at the buy year
- The down payment goes out as a one-time draw, following the draw order you set in One-time expenses.
- Spending switches from rent to ownership + mortgage; an optional early payoff year retires the remaining balance as another one-time draw.
- The month you buy splits the buy year. You pay rent up to that month and ownership costs after it, so a December purchase is charged eleven months of rent and one of ownership, and a June one is charged five and seven. Leave the month blank and the plan reads it as the start of the year: ownership for the whole of it. Buying this year, the split is taken over the months still ahead, since the plan only simulates the part of the year you have not lived yet: if it is June now and you buy in December, the portfolio funds five more months of rent and then one month of ownership.
This matters more than it looks. Rent is usually the dearer of the two, so charging a whole year of ownership makes the buy year look cheaper than the year you actually live, and the plan reads richer than it is. Under Most house I can afford that surplus becomes house you cannot really buy. If your ownership costs are the higher number, the error runs the other way and the correction gives you a little more room. Either way it is confined to the buy year and never compounds beyond it.
- The mortgage is amortized monthly, the way a lender does it: each year of the loan costs its twelve monthly payments, and an early payoff clears the balance still owed plus that month's interest, the figure a payoff quote would show. A payoff in any later year is taken at the start of that year, so that year's payments stop.
- Everything stays in today's dollars, which is exactly why a fixed mortgage gets cheaper over time in the chart.
- That applies to the payoff too, and it is the reason a payoff years out costs less on screen than the balance your lender would quote. A mortgage balance is a nominal number; the same years of inflation that shrink the monthly payment shrink the lump sum that retires it, so the figure shown is what that check is worth in today's money. A payoff in the buy year itself has no years to shrink, so there it equals the balance exactly. The down payment plus the buy-year payoff is the full purchase price.
Extra principal payments
Beyond a single early payoff, the Housing panel's Extra principal payments sub-block (under "Already own" or "Buying") lets you plan several smaller principal payments across the life of the note: a bonus put toward the mortgage most years, say. Each row has a description, a year and month, and an amount you enter either in today's dollars (the default) or in payment-year dollars. The other basis is previewed beside the field at the plan's assumed inflation rate, so you can see the equivalent either way before you commit to one. A "Repeat yearly until" shortcut previews how many rows and which years it would add before appending them. The cap is 120 rows in total, and a request that would run past it is refused outright rather than quietly shortened.
Each row's funding priority is read-only next to the amount. It says "priority" rather than "order" because the engine always falls back to the other accounts when the ones you named run dry. Edit funding order opens One-time expenses, where every extra-principal payment is also listed as its own derived row with the usual draw-order editor, the same treatment the down payment and an early payoff already get. There is no second copy of the amount and no second place to edit it.
A row's own line says what actually happens to it, in plain language: dated before you own the home, it's ignored; larger than what's left on the note at that point, it's capped, with the extra amount named as not needed; dated after the note is already retired by an earlier payment, it's not needed; dated before the first year this plan simulates, or after the last, it's not simulated; and dated a month that has already passed this year, it's counted now, drawn immediately, exactly like any other one-time expense dated in the past. None of these ever look like the row was deleted, and none of them promise money that was never actually funded.
The sub-block's collapsed summary names the note's planned end date beside the row count, month and year: the month the last payment falls in, not the first month you are free of the loan. The panel's own readouts below it, loan end with and without your entered schedule, interest saved, and the simulated payoff age, along with the two dollar bases and what "funded" actually means, are covered in full in extra principal payments and early payoff.
Compare how to pay for the home
Explore's Compare how to pay for the home panel runs your plan three ways at once, on the same seed and the same market draws, changing nothing but how the home is paid for. It is a read-only comparison: nothing it shows is applied to your plan, and there is no winner badge. As entered is marked as the reference row, because which of the three you should want depends on what you are willing to trade.
For a home you already own the rows are Pay off now, Keep the loan and As entered. For a purchase they are All cash, Financed to term and As entered.
- Pay off now is a modeled action, not something in your plan: the statement balance you entered leaves the portfolio now, with no interest on top, because nothing has accrued between the statement and today. "Now" is the row's actual instruction to the model, not a date chosen to stand for it, so it means the same thing on 1 January as on any other day. Any extra principal payments you planned are cleared, and this year's principal and interest is $0. Property tax, insurance, HOA and maintenance carry on, since owning the house is not the same as owing on it.
- Keep the loan and Financed to term hold the financing you entered and remove both kinds of planned payment, the extras and the payoff, so the note runs to the end of its term.
- All cash is a 100% down purchase: the whole price leaves the portfolio once, in the purchase month, and there is no note, no extras and no payoff. The down payment is not kept beside it.
The columns are the argument. Success and the reduction below entered expenses say what each way of paying costs you in living standard; lifetime tax and lifetime Medicare say what it costs in bills, because the money to retire a loan usually comes out of a tax-deferred account in one year and IRMAA reads that income two years later. Mortgage debt at plan end is the principal still owed at the horizon, and net liquid assets at plan end is the portfolio minus that debt, formed on each simulated path before the median is taken rather than by subtracting one median from another. It excludes home equity, exactly as the rest of the page does: paying a house off shows up as the debt being gone, never as an asset appearing.
Every row is rebuilt from your plan minus its housing, then given its own way of paying, so a row without a loan is also a row without the down payment that financed one. The rows share one seed and one path count, both stated in the panel's subtitle beside the return model and the horizon, so read them against each other. They are not comparable with the goal seekers' endpoints below, which search at their own reduced path counts, and the numbers go stale the moment you edit the plan: the panel says so and asks you to run it again rather than leaving last plan's figures on screen.
The optimizer
The home goal-seeker is a sandbox: it uses your live recurring spending, medical costs, income, taxes and portfolio, and varies its own housing inputs across purchase years and financing choices on identical seeded paths. It leaves Roth conversions out. Apply writes a chosen result back into your plan; exploring never touches it.
Housing stays protected in every candidate. Rent before buying, ownership costs and mortgage payments cannot be trimmed by the guardrail. They also count toward the essential floor under VPW and a fixed percentage of your portfolio. An early payoff removes mortgage payments from that floor; ownership costs continue. Down payments and payoff principal remain separate one-time expenses.
Your own extra principal rides along. When your live plan runs a mortgage, the goal seekers score every candidate with the extra-principal payments you entered, as fixed amounts in the basis you entered: $40,000 is $40,000 against a $400,000 house and against an $800,000 one, never scaled with the candidate's price. A candidate whose loan is smaller than a payment has that payment capped at what is left of it and the excess skipped, exactly as the Housing panel's own placement sentences show. The payoff sweep's two endpoint rows carry none of them: all cash has no note at all, and hold to term prices the note as never accelerated. Untick includes your N extra principal payments as entered to score without them. When your housing is Renting or Not tracked, nothing schedules those rows at all, so there is no box to untick and no candidate carries them.
Apply writes exactly what a row was scored with: its price, financing and ownership costs, its purchase month and draw orders, and its extra payments included or cleared as the row's own label says. An all-cash row, a hold-to-term row, or any row scored with the box unticked therefore leaves no extra payments and no payoff behind in your plan. A Best timing & down payment cell writes no payoff, because that grid never scored one, but it keeps your extra payments when the box was ticked. A Most house I can afford winner that bridges writes both: its own payoff year, and your extra payments. And when you own your home today, Apply carries today's housing cost (this year's mortgage payments plus ownership) forward as what you pay until the purchase, since that is what the row was scored with.
The search uses fewer paths for speed: up to 250 for the payoff-aware price search and its wait grid, and up to 600 for the price curve and maximum-spending search. Historical no-looping runs are also limited to the available windows. Compare results at the same path count, return model and housing assumptions.
Other goal seekers have additional limits. Maximum-spending scales Medical along with Recurring, but keeps the original non-housing essential floor; Apply scales Recurring only. The retirement-age search replaces the spending schedule with flat Recurring expenses, without adding Housing or Medical, and keeps the original protected amount. Those searches can therefore differ from the full projection after Apply. That difference is in the non-housing spending only: the housing a row was scored with is written exactly.
Cost of owning uses $/year for insurance, HOA and maintenance, in today's dollars. Each amount stays fixed as the search compares house prices; property tax remains a percentage of price. Enter estimates for the homes you are considering and adjust them if you explore a different type of home. Copy from live home copies those annual amounts directly, and Apply carries the costs used for the result back into your plan.
Chart down payment (%) changes only the gold reference line, not the search. Blank or invalid uses 20%; 100% draws an all-cash reference. The search always compares 20%, 40%, 60%, 80%, and 100% down, along with the purchase years and payoff dates. Entering 80% therefore does not restrict the answers to 80% down. The green dots match the result rows; the gold line shows one purchase year and down payment, including any carried extra payments. The two can use different path counts, so the dots are not guaranteed to sit above the line.
The price it reports is searched for, not proved
The optimizer does not price every combination. It ballparks an affordable price using one buy year and one down %, scans the grid at that one price for the pairing that scores best, then solves that pairing exactly on the price step you set. That is far fewer full plan runs than pricing every pairing would take. But a pairing that looks best at the ballpark price can top out sooner than a rival that started slower. Read the price as the most house this search found, not as a proof that nothing else does better.
Two things can make it read low rather than high, and neither can make it read high. Picking the wrong pairing at the ballpark price is one. The other only appears with the spending guardrail on: a pricier house raises your withdrawal rate, which can make the guardrail cut earlier and so lift the odds on a few paths. That breaks the assumption the price search relies on, that a dearer house is never safer, and the search can then stop at the first price that works rather than the largest one. So a guardrail plan's answer is a price you can afford, and possibly not the highest one.
When two structures score identically on both success and median ending, the search cannot tell them apart, so it prefers the one that does less: holding to term over paying the loan off, and a later payoff over an earlier one. A tie is not evidence for spending the money sooner.
"Not feasible" is a verdict on the whole grid. A row only says the target is out of reach after every buy year and every down % has been asked whether it could hold the target with a free house. One bad candidate no longer speaks for the rest: waiting until the last year in your range can exhaust a plan that buys comfortably in the first, and that used to end the search.
Counter-intuitive results can be genuine. Under some plans, buying sooner, all cash beats financing. The mortgage's real-dollar advantage loses to sequence risk on the invested lump sum. When the frontier says something odd, check the year-by-year detail before assuming it's a bug.
How future buy years are modeled
Waiting is simulated, not assumed. Every price × buy year × down % candidate starts from today's balances: the portfolio compounds along each path, your contributions keep landing, and today's annual housing cost is charged as a flat real-dollar amount until the buy year. For an existing home that amount is today's mortgage payment plus ownership costs; its future amortization or payoff is not carried into this waiting leg. A purchase five years out is funded from whatever each path actually reached by then, not from an assumed growth rate.
Recurring housing (rent before the purchase, then ownership costs and the mortgage payment) starts being drawn from the portfolio at your first spending phase, exactly as the ordinary projection draws it. Before then the plan assumes salary covers those bills. The down payment and any payoff are real portfolio events and are drawn in the year you schedule them, whether or not you have retired by then.
Consequences worth knowing:
- The horizon never moves. Your end age is fixed, so a loan taken out late only counts the payments that land inside the plan; the ones past the end age are never simulated. Part of what makes a later buy look cheaper is simply that fewer of its payments fit.
- The payoff search lives inside that same fence. It sweeps only years your plan actually simulates, which run out the year before your end age (the final age is where the ending balance is read, not a year you spend in). A payoff dated after that would never be paid, so it would score exactly like holding to term while reading as a recommendation. The last year it does offer is a real trade: that year's mortgage payment stops, the balance leaves the portfolio, and the ending value carries the difference. When the years you type in run past the horizon, the panel says which year it stopped at.
- The house is never an asset. No equity is credited, and neither the home's value nor any remaining loan balance is added back at the end. Ending value is portfolio only; the home appears purely as costs.
- The mortgage's real decline starts at the purchase. The payment is fixed in nominal dollars from the buy year, so in today's dollars it begins at full size whenever you buy and shrinks from there. A later purchase doesn't inherit a pre-shrunk payment.
What each answer leans on
- Portfolio at buy year: the simulated 10th–90th percentile band around the median at the start of the buy year, before the down payment goes out. It is the growth the recommendation depends on: a thin low edge means the answer needs the waiting years to go well. A row that buys now has no waiting years to simulate, so it simply shows today's balance.
- Success by model: that same recommended home scored under all three return models side by side: Forward · Baseline, Forward · Fat tails, and Historical replay, the same trio as the model cards at the top of the page. The lens you are currently on is never re-run; its number is this row's own success, reused, so the two can't drift apart. A blank entry means that model can't run your plan: Historical needs per-asset weights, so it is blank under a Blended allocation, and the two Forward models are blank when a glide path's correlations are invalid. The footnote under the table states what each model actually ran with: your means and volatilities plus the glide, the fat-tail df setting, and the historical preset and windows. When the three disagree, you can see which assumptions produced the disagreement.
If you wait: the same house, after a market you've already seen
The table above funds each buy year from every path at once: the answer is the price that holds your success target across the whole fan. The wait grid asks a narrower, more human question: suppose I actually live through the waiting years and the market lands somewhere specific. Then what?
- Rows are the first three future buy years in your Buy-between range. Buying now needs no grid. That answer is the table's own row.
- Columns (Weak / Soft / Expected / Firm / Strong): the 10th, 25th, 50th, 75th and 90th percentile of the active model's cumulative growth over exactly the waiting time, annualized. The waiting time is measured the way the projection itself measures it: the current year counts only from today, so waiting to a year two calendar years out is a year and a fraction of market, not two whole ones. This is the same five-band ladder the probability fan draws. Soft to Firm is the ordinary course: half of all outcomes land between those columns. Weak and Strong are the 1-in-10 envelope either way. They are plausible, not extreme (a 60/40 portfolio's 2022 was worse than a typical Weak column). All five come out of the model you are already using (your means, volatilities, correlations, the glide, fat tails if on), never a typed-in guess, and they are pure market outcomes: no contributions, no withdrawals, no taxes.
- Each cell re-solves the price from that conditioned state, holding the winning row's financing fixed: the same down %, rate and term, with the payoff year carried along so it keeps the same offset from the purchase. The cell shows that price, the portfolio you would be sitting on at the buy year, and the annual rate that got you there.
- Waiting can carry that payoff off the end of your plan, and the grid says so. The offset moves with the purchase, so a buy year far enough out puts the payoff after the last year your plan simulates. It is kept there rather than pulled back in, because pulling it back would hand you a different financing structure under the winning row's name. What it means for the number matters more: the plan never makes that payment, so the row prices the same house held to term, and it can read far above the earlier rows for that reason alone rather than because the market treated you well. Those rows are flagged with the payoff year the plan never reaches, and a note above the grid names the year your plan ends. Compare them against each other, not against the rows whose payoff still lands inside the plan.
- Every cell is solved at ONE success target: the first in your list. This is the table's first feasible row, and the grid's heading names it. The other targets aren't in the grid; to run the wait analysis at a stricter bar, put that target first (e.g.
95, 85) and Run again.
What the grid pins, and what it doesn't
- The waiting years are pinned to one outcome on every path. Inside the window all three account buckets, taxable, tax-deferred and Roth, move together at the cell's rate. The taxable sleeve's own spread and the glide's shifting mix are suspended for those years and resume the moment the window ends.
- Only the landing point is modeled, not the order of ups and downs. A window that crashes and recovers and one that climbs smoothly arrive in the same cell; contributions and withdrawals during the window meet the smooth version. Sequence risk inside the wait is the one thing the grid gives up.
- After the wait, your plan resumes on the same seeded paths. Every year is still drawn exactly as it would have been. The window only overrides what those years pay, so the years after the purchase are the same market you saw in the main table.
- Tax and benefit calculations still run in every cell. Taxes, RMDs, the ACA cliff and IRMAA all simulate normally: the down payment's income spike can cost that year's ACA subsidy if the buy lands inside your subsidy window, and it raises Medicare premiums exactly two years later through IRMAA's lookback, so shifting the buy year genuinely moves which calendar years absorb those hits. (Like the rest of the optimizer sandbox, the grid leaves your Roth-conversion plan out, so this is the unmanaged-MAGI picture.)
- Even the Expected column can afford slightly more than the table says for that year, and that is not a bug. Knowing how the waiting years turned out removes their dispersion; a plan with one less unknown supports a bigger number. The grid is a conditional answer, not a better one.
- Grid prices read at or below the table's price for the same year, while the payoff still lands inside the plan. The table is free to search for a better payoff year; the grid holds your winning structure fixed so the columns compare only the market. Once a row's payoff falls past the last year the plan simulates, the structure it prices is no longer the winner's, and the flagged price is a hold-to-term one.
- The implied portfolio is normally a single number. It widens into a band only when inflation uncertainty is on: nominal growth is pinned, but the deflator that converts it to today's dollars still varies path to path.
- "Expected" is the median, and it sits below the return you typed in. That gap is volatility drag, not an error. Wealth compounds a little slower than the average one-year return.
Why it's off under Historical replay
Under Historical replay the answer already is a realized market sequence. The actual order of the good and bad years is the whole point of that lens. Pinning its first years to a single growth rate would erase precisely the signal it exists to show, so the grid is hidden there.
The honest version of this feature for Historical would replay a chosen window's first years rather than flattening them: "what if the next three years are 1973–75 again?". That is a real refinement, not what runs today; until it exists, use the Forward models for the wait question and Historical for the sequence question.
The success target is the conservatism dial. Solving at 95% asks for a house that still works when the waiting years disappoint. To test a different set of assumptions, switch the return model to Forward, fat-tailed, or Historical, or keep saved scenarios side by side. There is deliberately no separate "assume less growth" toggle on the headline answer: two dials for the same fear quietly multiply, and you end up shopping for a house you can't explain. The wait grid doesn't break that rule. It invents no new pessimism, drawing its weak and strong years out of the plan's own assumptions, and it sits in a read-only side table that never moves the recommended row.