# Rent or buy — the crossover calculator > A browser calculator at https://vibes.obel.dev/rent-or-buy/ that models net worth over time for buying a home versus renting and investing the difference, and reports the year one path overtakes the other. Every input is encoded in the URL query string, so a link opens with the whole scenario already filled in. This file is the complete parameter reference for building a link to this calculator. The tables are generated from the calculator's own field definitions — if this file and the app disagree, the app is right and this is a bug. ## How to build a link 1. Start from `https://vibes.obel.dev/rent-or-buy/`. 2. Append `?` then `&`-joined `name=value` pairs from the tables below. 3. **Only include parameters you are changing.** Anything omitted uses its default, so a bare `https://vibes.obel.dev/rent-or-buy/` is the default scenario. 4. A link is self-contained. Opening one resets every parameter you left out back to its default, ignores whatever scenario the visitor had saved, and does not overwrite it. 5. Values are plain decimal numbers — no thousands separators, no currency symbol, no `%`. Negatives are fine where the range allows. 6. **All money is Kenyan shillings (KES), always.** The `c` parameter changes the display currency only. It does not convert the numbers you pass and it does not change the model, so convert to KES yourself before building the link. 7. Out-of-range values are never rejected, only clamped — a link stays valid while quietly meaning something else. Money is clamped to 0 to 1000000000000; everything else to the range in its table. 8. The on-screen sliders move in fixed steps, but **URL values do not have to be multiples of those steps.** Pass the real figure. 9. Percentages are whole-number percents: `50` means 50%, not 0.5. 10. Output the finished URL as raw text on its own line. Do not wrap it in a markdown link, do not percent-encode it, and do not write `&` as `&`. 11. These parameter names are specific to this calculator. Do not reuse them on another vibes calculator — several short names mean different things there. ## Modes `m` chooses what the property is for. Default `live`. Case-sensitive, and any value other than `let` is treated as `live`. | value | shown as | means | | --- | --- | --- | | `live` | I'd live in it | You would live in the home. Compared against paying `rent` for something similar. | | `let` | I'd rent it out | You would rent it out. Compared against the same money in the market — your own housing cost is identical on both paths, so it drops out entirely. | `tax` applies in both modes: under `let` it taxes net rental profit, under `live` it sets the value of owner-occupier interest relief, capped by `rc`. ## Display currency `c` sets the currency results are *displayed* in. Default `KES`. Accepted values: `KES`, `UGX`, `USD`, `GBP`, `EUR`, `ZAR`, `NGN`, `INR`, `AED`. An unrecognised code is ignored entirely. Display only — see rule 6. ## Parameters ### The purchase | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `p` | Property price | 12000000 | KES | | | `dp` | Deposit | 20 | 0 to 100 % | | | `mr` | Mortgage rate | 14.5 | 0 to 30 % | Annual, on the balance. | | `term` | Loan term | 20 | 1 to 35 years | | | `cc` | Purchase costs | 5 | 0 to 15 % | Stamp duty, legal fees, valuation, bank charges. Paid up front and never recovered. | ### Cost of owning it | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `tx` | Land rates / property tax | 0.2 | 0 to 4 % | Per year, as a share of the property's value. | | `ins` | Insurance | 24000 | KES | Per year. | | `mp` | Repairs & upkeep | 1 | 0 to 5 % | Per year, as a share of value. 1% is the usual rule of thumb. | | `hoa` | Service charge | 8000 | KES | Per month. | ### Renting instead — mode `live` only | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `rent` | Rent you'd pay | 55000 | KES | Per month, for a comparable home. | ### Letting it out — mode `let` only | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `inc` | Rent you'd collect | 70000 | KES | Per month, when occupied. | | `vac` | Empty months | 8 | 0 to 40 % | Share of the year with no tenant. | | `mgmt` | Agent's cut | 8 | 0 to 25 % | Letting and management fees on rent collected. | ### What the future does | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `appr` | Property appreciation | 8 | -5 to 20 % | Per year. | | `rg` | Rent growth | 5 | -5 to 20 % | Per year. | | `inv` | Return if invested instead | 10 | 0 to 25 % | What the deposit and any monthly savings would earn elsewhere. This is the single biggest lever. | | `infl` | Inflation | 6 | 0 to 20 % | Pushes up insurance and service charge. | | `h` | Years before you sell | 10 | 1 to 40 years | Short stays punish buyers — the purchase costs haven't been earned back yet. | | `sp` | Selling costs | 3 | 0 to 15 % | Agent and legal fees when you sell. | ### Tax | param | means | default | range | notes | | --- | --- | --- | --- | --- | | `tax` | Your income tax rate | 30 | 0 to 60 % | Applied to net rental profit. | | `rc` | Interest you can deduct | 300000 | KES | Per year, cap. Owner-occupier relief — set to 0 if you don't get it. | | `cgt` | Capital gains tax | 15 | 0 to 40 % | On the gain when you sell. Set to 0 if your home is exempt. | ## Worked examples A 2-bed in Kilimani at KES 14.5M with a 25% deposit, against KES 75,000 rent, over a 7-year stay: https://vibes.obel.dev/rent-or-buy/?p=14500000&dp=25&rent=75000&h=7 A studio in Ruaka bought to let: KES 5.2M, 40% deposit, KES 28,000 a month collected, held 15 years: https://vibes.obel.dev/rent-or-buy/?p=5200000&dp=40&inc=28000&h=15&m=let The first scenario shown in US dollars — the money in the URL is still KES: https://vibes.obel.dev/rent-or-buy/?p=14500000&dp=25&rent=75000&h=7&c=USD ## What the calculator does with these Both paths start with the same cash. The renter invests the deposit and purchase costs on day one, and whichever path has the cheaper month invests the difference. Net worth in year `h` is the sale price less selling costs, the outstanding loan and capital gains tax, plus whatever has accumulated in the investment pot. The page reports which path wins and by how much, the crossover year if there is one, and which single input would flip the verdict. The defaults are Kenyan, but nothing is hardcoded to Kenya. The tax knobs (`tax`, `rc`, `cgt`), the mortgage rate and the transaction costs are all plain inputs — set them for whatever market your reader is in. Not modelled: mortgage insurance, service charge arrears, ground rent, moving costs. Appreciation and investment returns are steady averages; real ones arrive in lumps. It is a model, not advice. ## Related - https://vibes.obel.dev/llms.txt — index of the other tools - https://vibes.obel.dev/build-or-invest/llms.txt — should a lump sum become a building instead?