Abstract
Australia's 2026 negative gearing and capital gains tax reforms are estimated to lower established dwelling prices by 1.7 per cent in the long run relative to no reform (Monte Carlo median 1.4 per cent; 90 per cent interval -3.9 to +0.2 per cent), phased in over three to four years, with rents about 0.4 per cent higher. The Treasury Laws Amendment (Tax Reform No. 1) Act 2026 quarantines rental losses on established dwellings bought after 12 May 2026 and replaces the 50 per cent CGT discount with cost base indexation and a 30 per cent minimum tax from 1 July 2027.
The paper builds a tax-adjusted investor cash-flow model that solves for the price at which a new investor earns the same after-tax return as under the old law, aggregates across buyer types with rent and supply feedback, and traces the adjustment path. The tax block reproduces Treasury's published worked examples to the dollar. A new geared investor's willingness to pay falls by about 10 per cent, but only some 29 per cent of purchases are affected.
The gearing quarantine accounts for nearly all of the effect; the CGT change is close to neutral for housing at typical growth rates. Loss carry-forward halves the impact, and the two measures partly offset each other. Effects are largest in low-yield, high-growth markets and near zero where yields exceed 6 per cent. The estimate sits just below Treasury's 2 per cent and CBA's 3 per cent. The concurrent 75 basis point rise in the cash rate, not the tax change, is the more likely cause of most of the 2026 fall in dwelling values.
Introduction and policy context
On 12 May 2026 the Commonwealth announced the largest change to the taxation of housing investment since 1999, and the first stage became law on 25 June 2026. Negative gearing on established dwellings ends for new purchasers, and the 50 per cent capital gains tax (CGT) discount gives way to cost base indexation with a 30 per cent minimum tax. Both take effect from 1 July 2027.
The question this paper answers is narrow: by how much, and over what path, should these changes move Australian dwelling prices and rents? Treasury's published answer is that prices grow about 2 per cent less over a couple of years, and rents rise by under $2 a week at the median (Treasury explainer). Treasury has not published the model behind those figures, so an independent, reproducible estimate has value.
The approach is a tax-adjusted user-cost asset-pricing model with two buyer types, a rental market, and a supply response. The model is solved numerically, calibrated to public Australian data, and stress-tested by Monte Carlo simulation over its uncertain parameters. All code is in the appendix.
Three features of the law drive the results and are often missed in commentary. Existing holdings are grandfathered, so the shock falls on the marginal buyer and not on the stock of owners. Disallowed losses are quarantined and carried forward, not extinguished, so the cost is a timing cost. And indexation is not always worse than a 50 per cent discount: it is more generous when real returns are low.
The tax law changes
The Treasury Laws Amendment (Tax Reform No. 1) Act 2026 is law: introduced 28 May, reported on by the Senate Economics Legislation Committee on 19 June, and passed by the Senate on 25 June 2026 (Baker McKenzie; ATO). A second tranche, the exposure-draft Tax Reform No. 3 Bill, was open for consultation from 3 to 21 August 2026 and is not yet law (Treasury consultation).
2.1 Measures that enter the model
| Measure | Rule | Start | Who is outside it |
|---|---|---|---|
| Negative gearing quarantine | Net rental losses on established dwellings deductible only against residential rental income and residential capital gains; excess carried forward | 1 July 2027, for dwellings contracted from 7:30pm AEST 12 May 2026 | Dwellings held or under contract at announcement; new builds; super funds incl. SMSFs; widely held trusts; build-to-rent and affordable housing carve-outs (tranche 2) |
| Cost base indexation | 50% CGT discount replaced by CPI indexation of the cost base for assets held 12+ months; applies to all CGT assets, not only housing | Gains accruing from 1 July 2027 | Companies, super funds, foreign residents keep existing treatment; new builds may elect the 50% discount; main residence exempt; affordable housing keeps 60% |
| Minimum tax on gains | 30% floor on tax on real gains of resident individuals; gain treated as the top slice of income | Gains accruing from 1 July 2027 | Income-support recipients; new builds electing the discount; deferred pre-2027 gains |
| Transitional split | Deemed sale and reacquisition just before 1 July 2027; pre-date gain keeps the 50% discount, post-date gain is indexed | At realisation | Valuation or a prescribed apportionment formula, at taxpayer's choice |
| Discretionary trust minimum tax | 30% minimum tax on discretionary trust distributions | 1 July 2028 | Exceptions to be settled |
Sources: Treasury explainer; Corrs Chambers Westgarth; Budget 2026-27 tax reform.
2.2 Design details that matter for pricing
2.3 Treasury's own worked numbers
Treasury's cameo of a $519,000 established purchase held ten years shows $186 of extra nominal tax over the life of the investment. Quarantined losses of $22,879 are absorbed by later rent and the final gain. The cost to that investor is a timing cost. It is larger for highly geared, high-income investors whose losses persist for longer.
Treasury also reports that at 2.5% inflation a 5% annual return over ten years yields $8,075 more tax under indexation, a 7.5% return yields $58,851 more, and a 2.5% return yields $24,858 less. Indexation is a tax on real returns above roughly the inflation rate; the discount was a subsidy that grew with nominal returns.
Literature and existing estimates
Published estimates of the price effect of reforms in this family cluster between 1 and 5 per cent below baseline, and almost all of them model a harsher policy than the one enacted. Most assume no carry-forward of losses and a flat cut in the discount to 25 per cent.
| Study | Method | Policy modelled | Price effect vs baseline | Rent effect |
|---|---|---|---|---|
| Treasury (2026) | Unpublished | Enacted package | About -2% over a couple of years | Under +$2/week at median |
| CBA, Saunders (2026) | Modified RBA Saunders-Tulip model | Enacted package | Just under -3% long run; -2% after three years; -5% without loss carry-forward; -5.5% downside | Small, in line with Treasury |
| Grattan, Daley and Wood (2016) | Capitalised tax-benefit arithmetic | Quarantine losses; discount to 25% | Up to -2% | Little change |
| Cho, Li and Uren | Heterogeneous-agent general equilibrium | Abolish negative gearing | -2.4% (2017 version, as cited by the Property Council submission) | +1.7% to +2.5% |
| Deloitte Access Economics (2019), as reported here | CGE plus housing module | New-build-only gearing; discount to 25% | -4.6% national; -8.3% Sydney and Melbourne | -0.5% |
Three methodological points follow. First, the partial-equilibrium studies (Grattan) capitalise the lost tax benefit into price and give the smallest numbers, because owner-occupiers absorb much of the vacated demand. Second, the general-equilibrium work (Cho, Li and Uren) adds a rental-market channel: fewer landlords means higher rents, which partly restores investor returns and damps the price fall. Third, the Saunders-Tulip approach works through the user cost of housing, which maps a tax change into an equivalent interest-rate change. CBA puts the cash-flow effect of the gearing change at 90 to 155 basis points on investor mortgage rates before allowing for carry-forward.
This paper sits in the third tradition but makes the tax terms explicit, so that each statutory parameter in Section 2 has a symbol in the model. It adds the rental-market feedback of the second tradition in reduced form.
Theoretical framework: the tax-adjusted user cost
A dwelling is priced where the marginal buyer's annual cost of holding it equals the rent it earns or saves. Following Poterba (1984) and the RBA's Fox and Tulip (2014) application, the no-arbitrage condition is rent = price × user cost. Every tax rule in Section 2 enters through the user cost of one buyer type.
4.1 Owner-occupier
Imputed rent and capital gains are untaxed and mortgage interest is not deductible. The reform leaves this expression unchanged; owner-occupiers are affected only through the equilibrium price and expected growth.
u^{O} = \lambda^{O} i^{O} + (1-\lambda^{O})\, r^{e} + m + \delta + \kappa^{O} - gHere λ is the loan-to-value ratio, i the mortgage rate, r^e the after-tax opportunity cost of equity, m running costs (rates, insurance, maintenance), δ depreciation, κ annualised transaction costs, and g expected nominal capital growth.
4.2 Investor before the reform
Rent is taxed and all costs are deductible at marginal rate τ, so a net rental loss produces a refund of τ × loss in the same year. Half of the nominal gain is taxed at realisation after a holding period of T years.
u^{I}_{0} = \frac{(1-\tau)\left(\lambda i + m + \delta\right) + (1-\lambda)\, r^{e} + \kappa^{I} - g\,(1-\tau^{cg}_{0})}{1-\tau}\tau^{cg}_{0} = \frac{0.5\,\tau\,\left[(1+g)^{T}-1\right](1+\rho)^{-T}}{\sum_{t=1}^{T} g\,(1+g)^{t-1}(1+\rho)^{-t}}The effective accrual-equivalent CGT rate τ^cg converts a tax paid once at sale into the annual rate that has the same present value at discount rate ρ. Deferral alone makes it well below 0.5τ.
4.3 Investor after the reform, established dwelling
Two things change. The capital gains term uses the indexed gain with a 30 per cent floor, and the refund on losses is delayed until the property has taxable income to absorb it.
\tau^{cg}_{1} = \frac{\max(\tau,\,0.30)\,\max\!\left\{(1+g)^{T}-(1+\pi)^{T},\,0\right\}(1+\rho)^{-T}}{\sum_{t=1}^{T} g\,(1+g)^{t-1}(1+\rho)^{-t}}\phi = \frac{\text{PV of loss deductions under quarantine}}{\text{PV of loss deductions under immediate offset}} \in [0,1]u^{I}_{1} = u^{I}_{0} + \underbrace{\frac{(1-\phi)\,\tau\,\ell}{1-\tau}}_{\text{gearing wedge}} + \underbrace{\frac{g\,(\tau^{cg}_{1}-\tau^{cg}_{0})}{1-\tau}}_{\text{CGT wedge}}The loss rate ℓ is the first-year net rental loss per dollar of price: ℓ = max(λi + m + δ_tax − y, 0), with y the gross rental yield. The recovery factor φ is computed by simulating the property's cash flows year by year: losses accumulate in a carry-forward pool, the pool is drawn down once rent exceeds costs, and any balance is applied to the indexed gain at sale. φ = 1 means the quarantine costs nothing; φ = 0 means losses are never used.
4.4 Investor after the reform, new build
For the first purchaser u equals the pre-reform expression, and the investor may elect whichever CGT treatment is lower. The exit price is different: the next buyer treats the dwelling as established, so expected growth g for a new build is reduced by the capitalised value of the lost concession spread over the holding period.
4.5 From user cost to price
With rent R per dwelling, the price each buyer type will pay is R divided by its user cost. The market price is set by the marginal buyer, which in a market with both types is a weighted blend. With investor share of purchases s and an elasticity of substitution between buyer types captured by a pass-through parameter θ, the long-run log price change is:
\Delta \ln P^{*} = -\,\theta\, s\,\frac{\Delta u^{I}}{\bar u} \;+\; \Delta \ln R^{*}θ = 1 is full capitalisation of the investor wedge in proportion to investor share. θ below 1 reflects owner-occupiers and exempt buyers (super funds, grandfathered owners, new-build investors) stepping in at almost the old price.
Model specification
The numerical model replaces the closed-form user cost of Section 4 with a year-by-year cash-flow simulation of one investment property, because the quarantine pool, the progressive tax scale and the 30 per cent floor are all kinked and cannot be linearised safely. It has four blocks.
flowchart LR
A[Tax block<br/>2027-28 scale, CGT rules] --> B[Investor block<br/>cash flows, IRR, WTP]
B --> C[Market block<br/>price, rent, stock]
C --> D[Dynamics block<br/>quarterly adjustment]
E[Calibration and<br/>Monte Carlo draws] --> B
E --> CThe tax block feeds investor willingness to pay (WTP); the market block scales that by the affected investor share and adds rent feedback; the dynamics block spreads the long-run change over time.
5.1 Tax block
Personal tax uses the resident scale applying from 1 July 2027 (nil to $18,200; 14% to $45,000; 30% to $135,000; 37% to $190,000; 45% above) plus the 2% Medicare levy. Rental results and capital gains are stacked on top of the investor's other income, so marginal rates are endogenous. Under the old law half the nominal gain is taxed. Under the new law the real gain is taxed, with ordinary tax on the gain floored at 30 per cent of the gain.
5.2 Investor block
An investor with other income Y buys at price P with loan λP (interest-only at rate i), pays stamp duty, receives rent growing at g_R, pays running costs growing at π, claims capital-works deductions, and sells after T years at P(1+g)^T less selling costs. Under the new law a negative taxable rental result adds to a carry-forward pool; a positive result draws the pool down first; any remaining pool reduces the real gain at sale; any balance after that is lost.
The WTP change is found in two steps. Step A solves for the after-tax return on equity ρ that makes the old-law investment break even at today's observed price and yield. Step B holds ρ and first-year rent fixed and solves for the price at which the new-law investment earns the same ρ.
\text{Step A: } \sum_{t=0}^{T} \frac{CF^{0}_{t}(P_0, R, Y)}{(1+\rho)^{t}} = 0 \;\Rightarrow\; \rho(Y) \qquad \text{Step B: } \sum_{t=0}^{T} \frac{CF^{1}_{t}(P_1, R, Y)}{(1+\rho(Y))^{t}} = 0 \;\Rightarrow\; P_1(Y)\Delta w = \sum_{k} \omega_k \,\ln\frac{P_1(Y_k)}{P_0}The investor shock Δw is the weighted average across five income classes ($80k, $120k, $160k, $210k, $300k; weights 0.25, 0.30, 0.20, 0.15, 0.10). Calibrating ρ to the observed price, instead of assuming it, means the model does not need a view on whether housing is fairly valued today. It asks only how far the price must fall for the marginal investor to be as well off as before.
5.3 Market block
s_{a} = s\,(1 - x_{new} - x_{ex}), \qquad \Delta \ln P^{d} = \theta\, s_{a}\, \Delta w\Delta \ln H = 0.016 \times 10 \times \eta \times \omega\, \Delta \ln P^{d}, \qquad \Delta \ln R = -\kappa_R\, \Delta \ln H + \chi\, s_a\,(-\Delta w), \qquad \Delta \ln P^{*} = \Delta \ln P^{d} + \Delta \ln RThe affected investor share s_a strips out new-build purchases (x_new) and exempt entities such as super funds (x_ex). θ = ε/(ε + η_s) is the share of a demand shift that lands on price when buyer demand elasticity is ε and ten-year stock supply elasticity is η_s. The stock H responds through new-build prices, which move by a fraction ω of established prices; new supply is about 1.6 per cent of the stock a year with a starts elasticity of η. Rents respond to the stock with multiplier κ_R and to tenure mismatch χ, which captures displaced rental dwellings whose buyers were not previously renters. Both buyer types capitalise rent, so the rent change feeds back into price one for one.
5.4 Dynamics block
\Delta \ln P_t = \alpha\,(\ln P^{*} - \ln P_{t-1}) + \beta\, \Delta \ln P_{t-1} + \sigma_tQuarterly prices close a fraction α = 0.07 of the gap to the new equilibrium each quarter with momentum β = 0.55. These are assumptions, chosen to give the gradual multi-year adjustment found in error-correction house price models such as Saunders and Tulip (2019). σ is an optional sentiment shock in the two quarters after announcement. The shock dates from 12 May 2026, not 1 July 2027, because a buyer after announcement already faces the new rules for all but the first year of a typical holding period.
Algorithm
The solution is two nested root-finds inside a Monte Carlo loop; every step is deterministic given a parameter draw, and bisection is used throughout because the cash-flow function is monotone in price but not smooth.
ALGORITHM 1 InvestorWTP(params p, income Y)
1 R <- p.yield * 1.0 # first-year rent on a $1 dwelling
2 CF0 <- EquityFlows(P=1, R, p, regime=OLD, Y)
3 rho <- Bisect( r -> NPV(CF0, r), [-0.5, 1.0] ) # Step A: implied required return
4 P1 <- Bisect( P -> NPV(EquityFlows(P, R, p, NEW, Y), rho), [0.4, 1.3] ) # Step B
5 return ln(P1)
ALGORITHM 2 EquityFlows(P, R, p, regime, Y)
1 debt <- p.lvr*P ; duty <- p.duty*P ; pool <- 0
2 CF[0] <- -((1-p.lvr)*P + duty)
3 for t = 1..T:
4 rent <- R*(1+gR)^(t-1) ; cost <- p.m*P*(1+pi)^(t-1) + p.i*debt
5 taxable <- rent - cost - p.dtax*P
6 if regime = OLD or dwelling is new build:
7 tax <- Tax(Y + taxable) - Tax(Y) # negative = refund
8 else if taxable < 0: pool <- pool - taxable ; tax <- 0
9 else: use <- min(pool, taxable) ; pool <- pool - use
10 tax <- Tax(Y + taxable - use) - Tax(Y)
11 CF[t] <- rent - cost - tax
12 sale <- P*(1+g)^T ; base <- P + duty + p.sell*sale - p.dtax*P*T
13 nominal <- sale - base ; real <- sale - base*(1+pi)^T
14 if regime = NEW: use <- min(pool, max(real,0)) ; real <- real - use
15 cgt <- max( IncomeTax(Y+real) - IncomeTax(Y), 0.30*real ) + 0.02*real
16 else: cgt <- Tax(Y + 0.5*nominal) - Tax(Y)
17 if new build: cgt <- min(old-law cgt, new-law cgt) # taxpayer election
18 CF[T] <- CF[T] + sale*(1-p.sell) - debt - cgt
19 return CF
ALGORITHM 3 LongRun(p)
1 dw <- sum_k weight_k * InvestorWTP(p, Y_k)
2 s_a <- p.s*(1 - p.x_new - p.x_ex)
3 dPd <- p.theta * s_a * dw
4 dH <- 0.016*10 * p.eta * p.omega * dPd
5 dR <- -p.kR*dH + p.chi*s_a*(-dw)
6 return dP* = dPd + dR, dR, dH
ALGORITHM 4 MonteCarlo(N = 3000, seed = 20260920)
1 for n = 1..N: draw p from the distributions in Section 7 ; store LongRun(p)
2 report mean, percentiles, tail probabilities
ALGORITHM 5 Path(dP*, Q = 40)
1 P[0] <- 0 ; d <- 0
2 for t = 1..Q: d <- alpha*(dP* - P[t-1]) + beta*d + sigma_t ; P[t] <- P[t-1] + dComplexity is O(N × K × B × T): 3,000 draws, 5 income classes, about 100 bisection evaluations and a 5 to 15 year horizon, roughly 1.5 million cash-flow passes. It runs in a few minutes in plain Python with no dependency beyond NumPy.
The tax block was checked against Treasury's published cameos before use. The code reproduces all four to the dollar: David's extra tax of $8,075, Ben's saving of $24,858, Kate's extra $58,851, and Jack's minimum-tax bill of $3,000.
Calibration and data
Market parameters are set to conditions at end-August 2026; behavioural parameters without a clean public source are marked as assumptions and given wide Monte Carlo ranges.
| Parameter | Symbol | Baseline | Monte Carlo range | Basis |
|---|---|---|---|---|
| Gross rental yield | y | 3.79% | N(3.79%, 0.4pp), 2.8 to 5.0% | National yield, August 2026 (Cotality via Rate Money) |
| Investor mortgage rate | i | 6.4% | N(6.4%, 0.6pp), 5 to 8% | Assumption: cash rate 4.35% (Aussie) plus about 2pp; Treasury's cameo uses 5.7% |
| Inflation | π | 2.5% | N(2.5%, 0.4pp), 1.5 to 4% | RBA target midpoint; Treasury cameos |
| Real capital growth | g − π | 2.5% | N(2.5%, 0.7pp), 0.5 to 4.5% | Treasury: 20-year nominal growth 5.8 to 6.1% houses, 4.1 to 4.8% units |
| Real rent growth | g_R − π | 1.0% | N(1.0%, 0.5pp), 0 to 2.5% | Assumption |
| Loan-to-value ratio | λ | 80% | U(60%, 90%) | Assumption, marginal geared investor |
| Holding period | T | 10 years | Uniform integer 5 to 15 | Treasury cameos use 5 and 10 |
| Running costs | m | 1.2% of value | fixed | Assumption: rates, insurance, repairs, agent fees |
| Capital-works deduction | d | 0.4% of value | fixed | Assumption, established dwelling |
| Stamp duty; selling costs | 4%; 2% | fixed | Assumption | |
| Investor share of new lending | s | 38% | U(33%, 42%) | $37.1bn of $97.6bn, June quarter 2026 (The Adviser; Canstar) |
| New-build share of investor lending | x_new | 19% | U(12%, 25%) | ABS-based estimate for 2024 (de Valence) |
| Exempt-entity share | x_ex | 5% | fixed | Assumption: SMSFs and widely held trusts |
| Price pass-through | θ | 0.75 | U(0.5, 1.0) | Assumption: ε = 1, η_s = 0.33 |
| Starts elasticity to price | η | 1.0 | U(0.5, 2.0) | Assumption |
| New-build price response ratio | ω | 0.4 | U(−0.2, 0.8) | Assumption; negative means redirected investors lift new-build prices |
| Rent response to stock | κ_R | 2.5 | U(1.5, 3.5) | Assumption |
| Tenure mismatch | χ | 0.03 | U(0, 0.08) | Assumption |
At these settings a new geared investor's first-year rental loss is 2.9 per cent of the purchase price: rent of 3.79 per cent against interest of 5.12 per cent, running costs of 1.2 per cent and deductions of 0.4 per cent. With interest-only debt the property stays loss-making for the full ten years, so the carry-forward pool is used only at sale. Step A returns an implied after-tax required return on equity of 7.9 to 8.1 per cent across income classes.
Market context matters for reading any result against the data. National dwelling values fell 0.9 per cent in August 2026, a fifth straight monthly fall, and sit 3.6 per cent below their March peak (Australian Development Review). The RBA has lifted the cash rate by 75 basis points in 2026. New investor loan commitments fell 10.2 per cent by value in the June quarter (ABS). The tax shock and the rate shock arrived together.
Results
The enacted package lowers long-run established dwelling prices by 1.7 per cent relative to a no-reform baseline, with about 0.5 per cent of that in place by December 2026 and 1.2 per cent by December 2027. This is a deviation from baseline, not a forecast of price falls.
8.1 Investor willingness to pay
A new geared investor in an established dwelling will pay 9.9 per cent less on average for the same rent stream and the same required return. The fall is 8.0 per cent for investors in the 30 per cent bracket, 10.4 per cent at $160,000 of other income, and 13.5 per cent in the top bracket. Higher-rate investors lose more because the refund they no longer receive each year was worth more.
8.2 From investor shock to market price
The affected investor share is 28.9 per cent of purchases (38 per cent, less new builds and exempt entities). With pass-through of 0.75 the demand channel lowers prices by 2.1 per cent. The housing stock ends 0.14 per cent smaller after ten years and rents rise 0.43 per cent, about $3 a week on a median rent near $700. Capitalised higher rents add back 0.4 per cent, giving the net 1.7 per cent.
8.3 Decomposition
| Scenario | Investor WTP | Long-run price | Long-run rent |
|---|---|---|---|
| CGT change only | -0.9% | -0.15% | +0.04% |
| Enacted package | -9.9% | -1.71% | +0.43% |
| Gearing quarantine only, 50% discount kept | -15.1% | -2.62% | +0.66% |
| Enacted package without loss carry-forward | -19.7% | -3.41% | +0.85% |
Three findings stand out. The CGT change is close to neutral for housing at baseline growth of 5 per cent and inflation of 2.5 per cent, which is just above the break-even growth rate of about 4.6 per cent. The gearing quarantine does nearly all the work. And the two measures offset each other: carried-forward losses are worth more under indexation, because they shelter a fully taxed real gain and not a half-taxed nominal gain. Quarantine alone would have cut investor WTP by 15 per cent; the package cuts it by 10.
Carry-forward halves the price effect, from 3.4 to 1.7 per cent. CBA reports the same pattern, 5 per cent without carry-forward against just under 3 with it.
8.4 Time path
Model output (Appendix code), baseline calibration, 2026 to 2032
On fundamentals the peak drag on annual price growth is about 0.7 percentage points, in the year to mid-2027. CBA's estimate is 0.6 points by end-2026 and just under 1 point over 2027. A sentiment shock of 1.5 per cent spread over the two quarters after the Budget produces an overshoot to a trough of 3.2 per cent below baseline in the June quarter of 2027, before prices converge back to the same 1.7 per cent. The long-run level does not depend on sentiment; the path does.
8.5 Comparison with official and market estimates
The baseline of 1.7 per cent sits just under Treasury's 2 per cent and below CBA's 3 per cent. The gap to CBA is mostly pass-through: setting θ to 1 gives 2.3 per cent, and θ of 1 with expected growth of 6 per cent gives 3.8. The rent estimate of $3 a week is above Treasury's figure of under $2 and rests on the assumed stock multiplier.
Sensitivity analysis and Monte Carlo
Across 3,000 joint parameter draws the median long-run price effect is -1.4 per cent and the mean -1.6 per cent, with a 90 per cent interval of -3.9 to +0.2 per cent. There is an 11 per cent chance the effect exceeds 3 per cent and a 34 per cent chance it is smaller than 1 per cent.
Model output (Appendix code), 3,000 Monte Carlo draws, seed 20260920
The long-run rent effect has a median of +0.25 per cent and a 90 per cent interval of -0.1 to +1.4 per cent. The investor WTP shock has a median of -9.0 per cent and an interval of -19.4 to +0.9 per cent. The positive tail is real, not noise: when real capital growth is low, indexation taxes less than the old discount did, and that can outweigh the quarantine for lightly geared investors.
9.1 One-at-a-time sensitivity
| Parameter | Low value | Price effect | High value | Price effect |
|---|---|---|---|---|
| Expected nominal growth g | 3.5% | -1.3% | 6.5% | -3.3% |
| Inflation π (g held at 5%) | 2.0% | -2.5% | 3.5% | -0.7% |
| Gross yield y | 3.3% | -2.1% | 6.3% | -0.1% |
| Loan-to-value ratio λ | 60% | -0.9% | 90% | -2.3% |
| Holding period T | 5 years | -1.1% | 15 years | -2.3% |
| Pass-through θ | 0.5 | -1.1% | 1.0 | -2.3% |
| Investor share s | 30% | -1.4% | 45% | -2.0% |
| Mortgage rate i | 5.4% | -1.4% | 7.4% | -1.9% |
| New-build price ratio ω | -0.2 | -2.2% | 0.8 | -1.4% |
| Nominal rent growth g_R | 2.5% | -1.8% | 5.0% | -1.6% |
Expected real capital growth is the dominant parameter. Both the growth and inflation rows say the same thing: the package bites in proportion to the real gain investors expect, because that sets both the size of persistent rental losses they are willing to carry and the extra CGT under indexation. The reform is therefore self-limiting. If it lowers expected growth, it also lowers its own bite.
Yield is the second driver and works as a threshold. At Darwin-type yields above 6 per cent the property is positively geared from the first year, the quarantine never binds, and the price effect is close to zero.
A longer holding period raises the cost, which is the opposite of the usual CGT lock-in intuition. A longer hold means more years of refunds forgone before the pool is used at sale.
Heterogeneity: cities, dwelling types and buyers
The price effect is largest where yields are lowest and expected growth highest, which points to Sydney and Brisbane houses and away from Darwin, Hobart and high-yield units.
| Segment | Gross yield | Expected growth | Investor WTP | Long-run price |
|---|---|---|---|---|
| Houses, national | 3.5% | 6.0% | -18.4% | -3.2% |
| Sydney dwellings | 3.3% | 5.0% | -12.3% | -2.1% |
| Brisbane dwellings | 3.4% | 5.0% | -11.7% | -2.0% |
| Perth dwellings | 3.9% | 5.0% | -9.3% | -1.6% |
| Melbourne dwellings | 4.0% | 5.0% | -8.9% | -1.5% |
| Hobart dwellings | 4.4% | 5.0% | -7.2% | -1.2% |
| Units, national | 4.5% | 4.5% | -3.9% | -0.7% |
| Darwin dwellings | 6.3% | 5.0% | -0.7% | -0.1% |
City yields are Cotality figures for August 2026 (SGW; Australian Development Review). House and unit yields are assumptions; their growth rates follow Treasury's 20-year averages. All rows hold the investor share at 38 per cent and the growth rate for cities at 5 per cent, so city differences reflect yield alone.
The house and unit rows cut against the common view, put by CBA among others, that units will be hit harder. Both can be true. Per investor, the shock is larger for houses because low yields and high growth produce large, persistent losses. But investors are a larger share of unit buyers, which the table does not capture. With an investor share of 60 per cent the unit price effect would be about 1.1 per cent, still below houses. Segment-level investor shares are the most useful data to add.
10.1 New builds
The first purchaser of a new build keeps both concessions, so the model returns a WTP change of zero. Two second-round effects pull in opposite directions. Redirected investor demand raises new-build prices, the intended supply incentive. Against that, the exit buyer treats the dwelling as established, so its resale value carries the established-market discount. At a ten-year hold this costs the first buyer under 0.2 per cent a year in expected growth. The net sign is ω in the model and is left wide, at -0.2 to 0.8.
10.2 Buyers and existing owners
For a first-home buyer at Sydney's median of $1.22 million, a 2.1 per cent lower price is about $26,000, less than half of the 4.6 per cent fall in Sydney values over the past year. Treasury expects 75,000 additional owner-occupiers over a decade. Grandfathered investors lose nothing on tax but hold an asset worth slightly less, and gain an incentive not to sell, since a replacement purchase would fall under the new rules. Lower turnover reduces listings and cushions prices in the short run, which is one reason the fundamentals path in Section 8 is slow.
Limitations and validation
The model is a calibrated partial-equilibrium exercise, not an estimated one, and its price numbers should be read as plausible magnitudes with the Monte Carlo interval attached.
11.1 What has been validated
11.2 What has not
11.3 Why the data cannot yet confirm or reject the estimate
National values are 3.6 per cent below their March 2026 peak, but the cash rate rose 75 basis points over the same months. CBA attributes 1.5 percentage points of drag on 2026 price growth to the rate rises and 0.6 to the tax changes. The fundamentals path here puts the tax effect at about 0.3 per cent by the September quarter, far too small to separate from the rate effect in aggregate data.
The cleaner test is cross-sectional. The model predicts larger relative falls for low-yield, investor-heavy established segments than for new builds and high-yield markets, starting from May 2026. A difference-in-differences design on suburb-level indices, with treatment intensity set by pre-Budget investor share and yield, would identify θ. Early signs are in the predicted direction: investor loan commitments fell 10.2 per cent in the June quarter against 1.9 per cent for owner-occupiers, and Westpac reports investor applications down 26 per cent after the Budget against 18 per cent for owner-occupiers.
Conclusions and policy implications
The 2026 reforms are a real but small price shock: about 1.7 per cent off established dwelling prices in the long run, most likely between 0.7 and 2.3 per cent, arriving over three to four years. That is equal to a few months of typical price growth.
For revenue administration the compliance load is the larger story. Every CGT asset held at 1 July 2027 needs a valuation or an apportionment, gains split into four categories, and quarantined losses tracked per taxpayer across years. Valuation disputes at the 1 July 2027 boundary are the predictable audit risk, because a higher deemed value shifts gain into the discounted pre-2027 period.
Appendix: reproducible Python code
This is the code that produced every model number in the paper; it needs only NumPy, and the Monte Carlo seed is fixed at 20260920.
import numpy as np
# 1. Personal tax: 2027-28 resident scale plus Medicare (matches Treasury cameos)
BR = [(18200, 0.0), (45000, 0.14), (135000, 0.30), (190000, 0.37), (float('inf'), 0.45)]
MEDICARE = 0.02
def income_tax(y):
y = max(y, 0.0); t = 0.0; lo = 0.0
for hi, r in BR:
if y > lo:
t += (min(y, hi) - lo) * r
lo = hi
return t
def tax_total(y):
return income_tax(y) + MEDICARE * max(y, 0.0)
def cgt_bill(other_inc, nominal_gain, real_gain, regime):
# regime 0: 50% discount. regime 1: indexation with 30% floor.
if regime == 0:
tg = 0.5 * max(nominal_gain, 0.0)
return tax_total(other_inc + tg) - tax_total(other_inc)
tg = max(real_gain, 0.0)
ordinary = income_tax(other_inc + tg) - income_tax(other_inc)
return max(ordinary, 0.30 * tg) + MEDICARE * tg
# 2. Property cash-flow simulator
def equity_flows(P, R0, p, regime, other_inc):
T = p['T']; lam = p['lvr']; i = p['i']; pi = p['pi']
debt = lam * P; duty = p['duty'] * P
cf = [-((1 - lam) * P + duty)]
pool = 0.0
for t in range(1, T + 1):
rent = R0 * (1 + p['gR']) ** (t - 1)
cash_cost = p['m'] * P * (1 + pi) ** (t - 1) + i * debt
taxable = rent - cash_cost - p['dtax'] * P
if regime == 0 or p.get('new_build', False) or not p.get('reform_ng', True):
dtax = tax_total(other_inc + taxable) - tax_total(other_inc)
elif taxable < 0:
pool += (-taxable if p.get('carry', True) else 0.0); dtax = 0.0
else:
use = min(pool, taxable); pool -= use
dtax = tax_total(other_inc + taxable - use) - tax_total(other_inc)
cf.append(rent - cash_cost - dtax)
sale = P * (1 + p['g']) ** T
base = P + duty + p['sell'] * sale - p['dtax'] * P * T
nominal = sale - base
real = sale - base * (1 + pi) ** T
if p.get('new_build', False):
bill = min(cgt_bill(other_inc, nominal, real, 0), cgt_bill(other_inc, nominal, real, 1))
elif regime == 1 and p.get('reform_cgt', True):
use = min(pool, max(real, 0.0)); real -= use; pool -= use
bill = cgt_bill(other_inc, nominal, real, 1)
elif regime == 1:
use = min(pool, max(nominal, 0.0)); pool -= use
bill = cgt_bill(other_inc, nominal - use, real, 0)
else:
bill = cgt_bill(other_inc, nominal, real, 0)
cf[-1] += sale * (1 - p['sell']) - debt - bill
return np.array(cf), pool
def npv(cf, rho):
return float(np.sum(cf / (1 + rho) ** np.arange(len(cf))))
def bisect(f, lo, hi, n=60):
# f is decreasing in its argument
for _ in range(n):
mid = (lo + hi) / 2
if f(mid) > 0: lo = mid
else: hi = mid
return mid
def wtp_change(p, other_inc):
R0 = p['y']
rho = bisect(lambda r: npv(equity_flows(1.0, R0, p, 0, other_inc)[0], r), -0.5, 1.0)
P1 = bisect(lambda P: npv(equity_flows(P, R0, p, 1, other_inc)[0], rho), 0.4, 1.3, 40)
return np.log(P1), rho
INCOMES = np.array([80e3, 120e3, 160e3, 210e3, 300e3])
WEIGHTS = np.array([0.25, 0.30, 0.20, 0.15, 0.10])
def investor_shock(p):
d = np.array([wtp_change(p, y)[0] for y in INCOMES])
return float(d @ WEIGHTS), d
# 3. Market aggregation
def long_run(p):
dW, _ = investor_shock(p)
s_aff = p['s'] * (1 - p['x_new'] - p['x_exempt'])
dP_dem = p['theta'] * s_aff * dW
dH = 0.016 * 10 * p['eta'] * p['omega'] * dP_dem
dR = -p['kR'] * dH + p['chi'] * s_aff * (-dW)
return dict(dW=dW, dP=dP_dem + dR, dR=dR, dH=dH, s_aff=s_aff)
# 4. Dynamics
def path(dPstar, Q=40, alpha=0.07, beta=0.55, sent=0.0):
P = [0.0]; d = 0.0
for t in range(1, Q + 1):
d = alpha * (dPstar - P[-1]) + beta * d + (sent / 2 if t <= 2 else 0.0)
P.append(P[-1] + d)
return np.array(P)
BASE = dict(T=10, lvr=0.80, i=0.064, pi=0.025, g=0.05, gR=0.035, y=0.0379, m=0.012,
dtax=0.004, duty=0.04, sell=0.02, s=0.38, x_new=0.19, x_exempt=0.05,
theta=0.75, eta=1.0, omega=0.4, kR=2.5, chi=0.03)
# 5. Monte Carlo
def monte_carlo(N=3000, seed=20260920):
rng = np.random.default_rng(seed)
tn = lambda m, s, lo, hi: float(np.clip(rng.normal(m, s), lo, hi))
out = []
for _ in range(N):
pi = tn(.025, .004, .015, .04); rg = tn(.025, .007, .005, .045)
q = dict(BASE, pi=pi, g=pi + rg, gR=pi + tn(.01, .005, 0, .025),
i=tn(.064, .006, .05, .08), y=tn(.0379, .004, .028, .05),
lvr=rng.uniform(.6, .9), T=int(rng.integers(5, 16)),
theta=rng.uniform(.5, 1.0), s=rng.uniform(.33, .42),
x_new=rng.uniform(.12, .25), omega=rng.uniform(-.2, .8),
eta=rng.uniform(.5, 2), kR=rng.uniform(1.5, 3.5), chi=rng.uniform(0, .08))
r = long_run(q); out.append((r['dP'], r['dR'], r['dW'], r['dH']))
return np.array(out)
if __name__ == '__main__':
# Validation against Treasury cameos: expect 8075, -24858, 58851
for g_ in (0.05, 0.025, 0.075):
nom = 5e5 * ((1 + g_) ** 10 - 1); real = 5e5 * ((1 + g_) ** 10 - 1.025 ** 10)
print(round(cgt_bill(1e5, nom, real, 1) - cgt_bill(1e5, nom, real, 0)))
print(long_run(BASE))
print(long_run(dict(BASE, reform_cgt=False)), long_run(dict(BASE, reform_ng=False)), long_run(dict(BASE, carry=False)))
A = monte_carlo() * 100
print(np.percentile(A[:, 0], [5, 25, 50, 75, 95]), A[:, 0].mean())Scenario switches: reform_cgt=False keeps the 50 per cent discount, reform_ng=False keeps immediate loss offset, carry=False extinguishes quarantined losses, and new_build=True applies the new-build carve-out with the CGT election.
