Embed the calculators
Put the free calculators on your own site with one iframe and a credit line each. Loan sizing runs the three lender tests at once and names which one is holding the proceeds down; the cap rate, DSCR, cash-on-cash, gross rent multiplier and debt yield tools each solve their identity in any direction; the NOI tool builds an income statement line by line and the break-even tool says at what occupancy the whole thing stops covering itself; the mortgage tool prices a quoted loan and the balance it leaves at maturity; and the IRR tool builds a hold's cash flows and solves the rate on them. There is nothing to sign up for and no advertising inside any frame.
The loan sizing calculator
This is the whole thing
Below is the live embed, framed on this page exactly the way it would be framed on yours. Not a screenshot: type into it.
Two credit lines are visible there and they are different things. The one inside the frame, on the grey bar, is part of the tool and arrives with it. The one directly underneath, in your page's own HTML, is the line the snippet adds and the one we ask you to keep. This frame also runs the auto-height listener from the snippet above, which is why it fits its content exactly.
The cap rate calculator
Same license, same one-line install, same rules: no cookie, no advertising script, no request leaving the frame. It solves any one of NOI, value, and cap rate from the other two, and shows what the same NOI is worth at nearby cap rates.
The DSCR calculator
Same license, same one-line install, same rules. It solves any one of DSCR, NOI, and annual debt service from the other two, turns a loan quote into the payment, and shows how far NOI can fall before 1.00x and the common covenant levels.
The cash-on-cash calculator
Same license, same one-line install, same rules. Price, loan, NOI, rate, and closing costs in; equity, year-one cash flow, and the cash-on-cash out, re-solved 50 and 100 basis points in each direction.
The NOI calculator
Same license, same one-line install, same rules. Rent, vacancy, other income and expenses in; effective gross income, total expenses, net operating income and the expense ratio out, as a statement a reader can check line by line. Expenses go in itemized or as one total.
The gross rent multiplier calculator
Same license, same one-line install, same rules. It solves any one of multiplier, price and annual gross rent from the other two, and then does the thing most GRM widgets do not: translates the multiplier into the going-in cap rate it implies, across a range of expense loads.
The break-even occupancy calculator
Same license, same one-line install, same rules. Expenses, reserves and debt service against gross potential income give the occupancy where the property stops covering its costs, the cushion above it in points and in dollars of rent, and coverage at every level down.
The IRR calculator
Same license, same one-line install, same rules. It builds the equity cash flows of a hold from the NOI, its growth, the payment and the exit, and solves the internal rate of return on them, with the equity multiple and the present value beside it. The year-by-year series opens collapsed inside a frame so a long hold does not fill your article.
The commercial mortgage calculator
Same license, same one-line install, same rules. Loan, rate, amortization, term and interest-only months in; the payment, the annual debt service, the mortgage constant and the balance still owed at maturity out, with the amortization schedule behind a disclosure.
The debt yield calculator
Same license, same one-line install, same rules. It solves any one of debt yield, loan and NOI from the other two, shows what each conventional floor would advance, and ties the yield back to the cap rate and the loan to value.
What we ask in return
Keep the credit line. That is the entire license, and it is the only thing we ask for a tool that costs nothing and carries no advertising.
- You may restyle it, move it above the frame, change the wording so it reads naturally in your voice, and use the whole thing on a commercial site.
- Please do not remove it, hide it with CSS or a zero-height container, repoint the links, present the calculator as your own product, or charge anyone for access to it.
- You are welcome to add a
rel="nofollow"orrel="sponsored"attribute if your site's policy calls for one. We do not ask for a followed link and we will not treat that as a breach of anything.
An honest note about links
Widget embeds are usually sold on the promise of backlinks, and that promise is mostly false as stated. A search engine attributes the links inside a frame to the framed document's own address, not to the page hosting it. So the calculator's internal credit line does nothing for us in a search index. It is there for the human who used the tool and wants to know whose it is.
The line in your page's HTML is the part a crawler reads as a link from your site. That is why the snippet ships both, and why the anchor text is the calculator's real name rather than a keyword phrase we would rather rank for. Google's guidance on links distributed through widgets is worth reading before you paste anything from anyone: it treats keyword-stuffed or hidden widget links as manipulation, and it is right to. If you would rather link without passing any signal at all, use the nofollow attribute. The reason we want the embed is that your readers use the calculator, and some of them then come and look at the rest of what we build.
Opening on your own numbers
Add any of these to the end of the iframe address and the calculator opens on your scenario instead of ours. Everything is optional, and a reader can change any of it. For the loan sizing tool, the copy box at the top of this page writes them for you if you would rather not hand-build the string.
The loan sizing calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
price | Purchase price or appraised value, in dollars. | 100,000,000,000 dollars |
noi | Annual net operating income, in dollars. | 10,000,000,000 dollars |
rate | Interest rate as a decimal. 0.065 is 6.5%. | 1 |
amort | Amortization period in years. | 50 years |
term | Loan term in years. The balance left at the end of it is the balloon. | 50 years |
io | Interest-only period in months, counted from close. | 600 months |
ltv | Maximum loan to value as a decimal. 0.65 is 65%. Zero switches the test off. | 1.5 |
dscr | Minimum debt service coverage, such as 1.25. Zero switches the test off. | 10x |
dy | Minimum debt yield as a decimal. 0.09 is 9%. Zero switches the test off. | 1 |
A worked example. A $4,250,000 property with $312,500 of NOI, quoted at 7.15% on a 30-year schedule with a 1.35x coverage floor:
https://altyst.ai/embed/loan-sizing?price=4250000&noi=312500&rate=0.0715&dscr=1.35The cap rate calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
price | Purchase price or value, in dollars. | 100,000,000,000 dollars |
noi | Annual net operating income, in dollars. | 10,000,000,000 dollars |
cap | Cap rate as a decimal. 0.06 is 6%. | 1 |
The same worked deal, opening on its going-in cap rate:
https://altyst.ai/embed/cap-rate-calculator?price=4250000&noi=312500The DSCR calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
noi | Annual net operating income, in dollars. | 10,000,000,000 dollars |
ds | Annual debt service, principal plus interest, in dollars. | 10,000,000,000 dollars |
dscr | Debt service coverage ratio as a multiple. 1.25 is 1.25x. | 100x |
The same worked deal, opening on the coverage its quoted payment implies (the 65% loan at 7.15% over thirty years costs $223,897 a year):
https://altyst.ai/embed/dscr-calculator?noi=312500&ds=223897The cash-on-cash calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
price | Purchase price, in dollars. | 100,000,000,000 dollars |
loan | Loan amount, in dollars. Zero means all cash. | 100,000,000,000 dollars |
noi | Annual net operating income, in dollars. | 10,000,000,000 dollars |
rate | Interest rate as a decimal. 0.065 is 6.5%. | 1 |
amort | Amortization period in years. | 50 years |
cc | Closing costs as a decimal share of the price. 0.02 is 2%. | 1 |
The same worked deal again, at 65% leverage with 3% closing costs:
https://altyst.ai/embed/cash-on-cash-calculator?price=4250000&loan=2762500&noi=312500&rate=0.0715&cc=0.03The NOI calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
gpr | Gross potential rent, annual, in dollars. | 10,000,000,000 dollars |
oi | Other income, annual, in dollars. | 10,000,000,000 dollars |
vac | Vacancy and credit loss as a decimal share of gross potential rent. 0.05 is 5%. | 1 |
vacamt | Vacancy and credit loss in dollars. Present without vac, the tool reads vacancy as dollars. | 10,000,000,000 dollars |
opex | One operating expense total, in dollars. Present, the tool reads expenses as a single figure instead of line by line. | 10,000,000,000 dollars |
tax | Real estate taxes, in dollars. | 10,000,000,000 dollars |
ins | Insurance, in dollars. | 10,000,000,000 dollars |
util | Utilities the owner pays, in dollars. | 10,000,000,000 dollars |
rm | Repairs and maintenance, in dollars. | 10,000,000,000 dollars |
oox | Other operating expenses: payroll, general and administrative, marketing. | 10,000,000,000 dollars |
mgmt | Management fee as a decimal share of effective gross income. 0.03 is 3%. | 1 |
res | Replacement reserves, annual, in dollars. | 10,000,000,000 dollars |
units | Unit count, for the per-unit figures. Zero leaves them out. | 1,000,000 units |
area | Rentable area in square feet, for the per-foot figures. Zero leaves them out. | 1,000,000,000 square feet |
The same worked deal, built from the top with the expenses collapsed into one figure:
https://altyst.ai/embed/noi-calculator?gpr=560000&oi=25000&vac=0.06&opex=228900&units=24&area=21000The gross rent multiplier calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
price | Price or value, in dollars. | 100,000,000,000 dollars |
rent | Annual gross rent at full occupancy, in dollars. | 10,000,000,000 dollars |
grm | Gross rent multiplier: price over annual gross rent. 10 is ten years of gross rent. | 1,000x |
load | Share of gross rent lost to vacancy and expenses, as a decimal. 0.4 is 40%. | 1 |
The same worked deal screened on its gross rent, with the share lost to vacancy and expenses set to what its $312,500 of NOI implies:
https://altyst.ai/embed/gross-rent-multiplier-calculator?price=4250000&rent=560000&load=0.442The break-even occupancy calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
gpi | Gross potential income, annual, at full occupancy, in dollars. | 10,000,000,000 dollars |
opex | Operating expenses, annual, before debt service and reserves, in dollars. | 10,000,000,000 dollars |
res | Replacement reserves funded from operations, annual, in dollars. | 10,000,000,000 dollars |
ds | Annual debt service, principal plus interest, in dollars. Zero for an unlevered deal. | 10,000,000,000 dollars |
occ | The occupancy being underwritten, as a decimal. 0.95 is 95%. | 1 |
The same worked deal again, under the loan the DSCR example quotes:
https://altyst.ai/embed/break-even-occupancy-calculator?gpi=585000&opex=228900&res=10000&ds=223897&occ=0.94The IRR calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
eq | Equity invested at close, in dollars. | 10,000,000,000 dollars |
noi | Year-one net operating income, in dollars. | 10,000,000,000 dollars |
g | Annual NOI growth as a decimal. 0.03 is 3%. It compounds from year two. Negative is accepted for a shrinking NOI, down to -1. | 1 |
ds | Annual debt service, principal plus interest, in dollars. Zero gives the unlevered IRR. | 10,000,000,000 dollars |
n | Hold period in whole years. The sale lands at the end of the last one. | 40 years |
sale | Net sale proceeds to the equity, after selling costs and the loan payoff. Negative is accepted. | 100,000,000,000 dollars |
disc | Discount rate for the present value column, as a decimal. 0.08 is 8%. | 1 |
A five-year hold on the same worked deal:
https://altyst.ai/embed/irr-calculator?eq=3700000&noi=600000&g=0.03&ds=480000&n=5&sale=5463000&disc=0.08The commercial mortgage calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
loan | Loan amount at close, in dollars. | 100,000,000,000 dollars |
rate | Interest rate as a decimal. 0.065 is 6.5%. | 1 |
amort | Amortization period in years. The payment is computed on this. | 50 years |
term | Loan term in years. The balance left at the end of it is the balloon. | 50 years |
io | Interest-only months from close. It does not shorten the amortization. | 600 months |
The loan the worked deal is financed with, with two years of interest only:
https://altyst.ai/embed/commercial-mortgage-calculator?loan=6300000&rate=0.065&amort=30&term=10&io=24The debt yield calculator
| Parameter | What it sets | Highest accepted |
|---|---|---|
noi | Annual net operating income as the lender underwrites it, in dollars. | 10,000,000,000 dollars |
loan | Loan amount, in dollars. | 100,000,000,000 dollars |
dy | Debt yield as a decimal. 0.09 is 9%. | 10 |
value | Purchase price or value, in dollars. Zero leaves the loan to value and cap rate figures out. | 100,000,000,000 dollars |
The same deal again. Leaving loan out is what tells it to solve the proceeds a 9% floor allows rather than the yield on a loan you already have:
https://altyst.ai/embed/debt-yield-calculator?noi=600000&dy=0.09&value=10000000There is no parameter for a heading, a label, a color, a logo, or a link, and there will not be one. A free-text parameter on an embeddable route means anyone can publish arbitrary words on an altyst.ai address inside a frame under our name, which is a defacement surface and a phishing surface at the same time. Numbers are the whole vocabulary, every one is coerced through Number(), and every one is clamped at the ceiling in the tables above.
What you are putting on your page
If you run a site with a real audience you should be suspicious of any third-party frame, so here is everything the embed does, and what stops it doing more.
It cannot call anything, including us
The embed route is served with its own Content-Security-Policy, and that policy sets connect-src 'none'. There is no analytics call, no error report, no beacon, no API request. The browser enforces it, so this is not a promise about our intentions: even if the frame tried, the request would not leave. form-action 'none' and an img-src that names no external host close the other two ways a page can quietly send a value somewhere.
No third-party code runs inside it
Our site can carry advertising conversion tags on its own pages. They are suppressed on the embed routes, and the embed policy names no external script origin, so nothing of ours drags a vendor onto your page. There is no font from a font host and no image from an image host either. Every file the frame fetches is served from altyst.ai.
It holds nothing worth stealing
The framed document reads no session, no cookie, and no browser storage. The code that knows how to talk to our API is not in the bundle it loads, because the route imports the calculator and the solver and nothing else. The frame is also a different origin from your page, and the browser's same-origin rule cuts both ways: your page cannot read into the frame, and the frame cannot read out of your page.
Every input is a number
The parameters in the tables above are the only thing each route accepts, each is parsed to a number or discarded, and each is clamped. The clamps exist because a loop bound in a query string is a way to hang the tab of whoever is reading your article: without a ceiling, a term of half a million years would build six million rows of amortization schedule inside your page and the freeze would be blamed on you.
Framing rules
Only the /embed/ routes may be framed. The rest of altyst.ai keeps frame-ancestors 'self' and its clickjacking header, so nobody can frame a signed-in screen and dress it up as their own. That separation lives in the site configuration rather than in a convention somebody has to remember, and a test in our build matches real paths against both rules on every change, because a rule like that widening by one character is exactly the sort of mistake nobody notices by looking.
One thing we have not done yet and will say so plainly: the embed routes are served from the same hostname as the application. Serving them from a separate origin would put a browser-enforced wall between a framed document and everything the app stores, which is the stronger arrangement. It is on the list. Nothing above depends on it, because the framed document holds no state to wall off.
Where these earn their place
The loan sizing calculator answers one question well: a lender runs loan to value, minimum coverage, and minimum debt yield, funds the smallest answer, and the useful fact is which of the three produced it. A tool that solves one of the three and stops is right only when that test happens to be the binding one, and it cannot tell you whether it was. So the embed belongs under writing where that distinction is the point.
- A post about why proceeds shrank when rates moved. Coverage is the test that moves with the coupon, and a reader can watch it happen instead of taking your word for it.
- A brokerage or lender resource page, next to a term sheet explainer, so a borrower can put their own quote in.
- A course or a syllabus module on debt sizing. The tool names the binding constraint, which is the thing students get wrong.
- A newsletter archive page. The embed is not fetched until someone scrolls to it, so an archive full of them costs nothing to load.
The cap rate calculator belongs under writing about pricing rather than debt: a piece explaining what a listing's asking price implies about its income, a valuation explainer, or a market letter where the working figures should be checkable. The nearby-caps table is the part worth embedding, because it turns a basis-point argument into dollars in front of the reader.
The DSCR calculator belongs under writing about covenants and credit: a piece on what happens when coverage tightens, a term sheet explainer, or a course module on lender tests, because its cushion table turns the covenant into dollars of income in front of the reader. The cash-on-cash calculator belongs under writing about what a buyer actually earns in year one, and its rate table is the honest version of the "rates ate my returns" story: the same deal, re-solved at the coupons being argued about.
The NOI calculator belongs under anything about reading an operating statement, because its statement view is the artifact the argument is actually about, and under any piece where a reader is likely to be holding a seller's numbers. The gross rent multiplier calculator belongs under beginner and screening material, where its table does the teaching a paragraph cannot: the same multiplier, three points of yield apart. The break-even occupancy calculator belongs under downside and risk writing, because it converts a covenant into units emptying, which is the form a reader remembers.
If there is a calculation you keep rebuilding in a spreadsheet and would embed if it existed, write to support@altyst.ai and say what it is. That is how the next one gets chosen.
Questions
Do I need an account or an API key?
No. The embed is a plain iframe pointing at a public URL. There is no key to request, no domain to register, no dashboard, and nothing that can expire and break your page later. Paste the code and it works.
Does the embed track my readers?
No. The framed document sets no cookie and reads no storage, and once its own files have loaded it makes no further request. Its Content-Security-Policy sets connect-src to none, so the browser blocks any fetch, beacon, or socket the frame might attempt, including one back to us; form-action is none and img-src names no external host, which closes the other two ways a page can quietly send a value somewhere. No advertising or analytics tag runs inside it. The one thing the frame does send is a message to your page containing its own pixel height, which your page ignores unless you pasted the auto-height snippet.
What am I required to keep?
The credit line under the iframe, linking to the calculator and to Altyst. You can restyle it, move it, or change the wording so it reads naturally on your site. What you may not do is remove it, hide it with CSS, or point the links somewhere else. The calculator inside the frame also carries its own credit line, and that one is part of the tool rather than something you install.
Will it slow my page down?
The snippet sets loading to lazy, so the frame is not fetched until a reader scrolls near it. The document is statically generated and served from a CDN with a long edge cache. It loads no third-party script, no font from an external host, and no image: an HTML document, its stylesheet, its JavaScript, and a self-hosted font, every one of them from altyst.ai.
Can I preset a calculator to my own deal?
Yes. Each calculator takes a short list of numeric parameters on the iframe address, nine for loan sizing, three each for the cap rate and DSCR tools, four each for the gross rent multiplier and debt yield, five each for break-even occupancy and the commercial mortgage, six for cash-on-cash, seven for the IRR tool and fourteen for NOI, so it opens on your figures rather than the defaults. A reader can still change anything. The parameters are listed further down this page, along with why every one of them is a number and none of them is text.
What happens if you change the calculator?
Your embed updates, because it points at a URL rather than a copy. We have no plan to retire the tool or move it, and if that ever changed the address would redirect rather than break, because a dead frame on someone else's page is our problem and not theirs. If a calculation convention changes, the tool page says which convention it follows and why, and the arithmetic is tested case by case against the same engine that runs inside the product.
Can I use it on a commercial site?
Yes, including a brokerage site, a course, a newsletter, or a lender's resource page. What is not allowed is charging for access to the calculator itself, presenting it as your own tool, or wrapping it in something that makes it look like your reader is giving their figures to you.
What the frame is a slice of
The calculator asks you to type an NOI. Working that figure out from the rent roll and the T-12, and then carrying it through leasing, exit, and an Excel workbook, is what the rest of Altyst does. The sample deal is the shortest way to see whether that is worth a link from you.