Free to embed

Embed the calculator

Put the free loan sizing calculator on your own site with one iframe and a credit line. It sizes a mortgage against loan to value, coverage, and debt yield at once, and names which of the three is holding the proceeds down. There is nothing to sign up for and no advertising inside the frame.

<iframe
  src="https://altyst.ai/embed/loan-sizing"
  title="Commercial loan sizing calculator by Altyst"
  width="100%"
  height="1900"
  style="border:1px solid #E6E0D2;border-radius:12px;max-width:100%"
  loading="lazy"
  referrerpolicy="strict-origin-when-cross-origin"
  allow="clipboard-write"
></iframe>
<p style="font:14px/1.5 system-ui,sans-serif;margin:8px 0 0"><a href="https://altyst.ai/tools/loan-sizing">Commercial loan sizing calculator</a> by <a href="https://altyst.ai/">Altyst</a></p>

A note on that number, because guessing it is the one thing that makes an embed look broken. At a normal article width the calculator lays out in two columns and comes to about 1900 pixels. Below 720px it stacks and roughly doubles, so on a phone a fixed frame this tall scrolls inside itself. If your editor allows a script tag, the auto-height version above removes the guess entirely.

Just the credit line, if you are hand-building the markup
<p style="font:14px/1.5 system-ui,sans-serif;margin:8px 0 0"><a href="https://altyst.ai/tools/loan-sizing">Commercial loan sizing calculator</a> by <a href="https://altyst.ai/">Altyst</a></p>

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.

Commercial loan sizing calculator by Altyst

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.

What we ask in return

Keep the credit line. That is the entire licence, 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" or rel="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. The copy box at the top of this page writes them for you if you would rather not hand-build the string.

Numbers only. Anything unreadable falls back to that field's default rather than throwing away the rest of the scenario.
ParameterWhat it setsHighest accepted
pricePurchase price or appraised value, in dollars.100,000,000,000 dollars
noiAnnual net operating income, in dollars.10,000,000,000 dollars
rateInterest rate as a decimal. 0.065 is 6.5%.1
amortAmortization period in years.50 years
termLoan term in years. The balance left at the end of it is the balloon.50 years
ioInterest-only period in months, counted from close.600 months
ltvMaximum loan to value as a decimal. 0.65 is 65%. Zero switches the test off.1.5
dscrMinimum debt service coverage, such as 1.25. Zero switches the test off.10x
dyMinimum 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.35

There is no parameter for a heading, a label, a colour, 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 table 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 nine parameters are the only thing the 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 this earns its place

The 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.

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 the calculator to my own deal?

Yes. Nine numeric parameters can be added to the iframe address, so the calculator 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.