Embeddable calculator widgets

Drop a fully interactive calculator into any listing page, agent site or blog post. Free to embed with a small “Powered by” credit — remove the branding entirely with a Realtor or Business plan.

Full PITI with PMI, HOA and extra principal — the listing-page workhorse.

1. Configure defaults

These become the widget's starting values. Visitors can still edit them.

Appearance

Matches the widget to your brand — buttons, highlights and figures pick up the accent colour.

2. Live preview

3. Copy the embed code

Simple iframe

<iframe
  src="https://mortgagefvcalculator.com/embed/mortgage?price=450000&down=45000&rate=6.75&term=30&tax=5400&ins=1500&hoa=0&pmi=0.55"
  style="width:100%;border:0;min-height:640px"
  loading="lazy"
  title="Mortgage payment calculator"
></iframe>

Auto-resizing (recommended)

Adds a tiny listener so the iframe grows and shrinks with the content.

<iframe id="calc-mortgage" src="https://mortgagefvcalculator.com/embed/mortgage?price=450000&down=45000&rate=6.75&term=30&tax=5400&ins=1500&hoa=0&pmi=0.55"
  style="width:100%;border:0;min-height:640px" loading="lazy"
  title="Mortgage payment calculator"></iframe>
<script>
  window.addEventListener("message", function (e) {
    if (e.data && e.data.type === "ledger:resize") {
      var f = document.getElementById("calc-mortgage");
      if (f) f.style.height = e.data.height + "px";
    }
  });
</script>

React component

For Next.js, Remix, TanStack Start or any React portal — auto-resizes the same way.

// Drop-in React component — no dependencies.
export function MortgageFvWidget() {
  const src = "https://mortgagefvcalculator.com/embed/mortgage?price=450000&down=45000&rate=6.75&term=30&tax=5400&ins=1500&hoa=0&pmi=0.55";
  const ref = React.useRef<HTMLIFrameElement>(null);
  React.useEffect(() => {
    const onMessage = (e: MessageEvent) => {
      if (e.data?.type === "ledger:resize" && ref.current) {
        ref.current.style.height = e.data.height + "px";
      }
    };
    window.addEventListener("message", onMessage);
    return () => window.removeEventListener("message", onMessage);
  }, []);
  return (
    <iframe
      ref={ref}
      src={src}
      title="Mortgage payment calculator"
      loading="lazy"
      style={{ width: "100%", border: 0, minHeight: 640 }}
    />
  );
}

URL parameters — Mortgage payment

ParamMeaningExample
priceHome price450000
downDown payment45000
rateRate (%)6.75
termTerm (yrs)30
taxProperty tax / yr5400
insInsurance / yr1500
hoaHOA / mo0
pmiPMI rate (%)0.55
themeForce light or dark chromedark
accentBrand colour as a 6-digit hex, no #1f7a5a
wlWhite-label key (removes branding)wl_…

Embedding on a brokerage or lender site?

Realtor covers one domain white-labelled; Business covers up to ten plus team seats and a higher API quota. Need it inside your own product instead of an iframe?