Free · no signup · no tracking

Put these calculators on your site

If you write for people moving to Germany, the Netherlands or Ireland, these widgets answer the question your readers actually came with. Copy one line of HTML. Nothing to install, no account, no cost, and we never ask for anything back except the credit line.

What you get

  • Figures checked against primary sources. Every widget states the tax year and the assumptions it makes. When the budgets change in January, we update them — your embed updates with us, automatically.
  • No tracking. The widgets set no cookies, run no analytics, and send nothing about your visitors anywhere. The only network request is loading the widget itself.
  • Light and dark. They follow your reader's system theme, so they do not glow white on a dark blog.
  • Roughly 20 KB. Plain HTML, CSS and JavaScript. No framework, no fonts to download.

Germany: gross to net salary

The one most expat blogs want: what a German job offer is actually worth after tax and social insurance.

Paste this where you want it
<iframe src="https://europaycalc.com/embed/germany-salary.html"
        width="100%" height="470" style="border:0;"
        title="Germany net salary calculator" loading="lazy"></iframe>
<p>Calculator by <a href="https://europaycalc.com/germany-net-salary-calculator.html">EuroPayCalc</a></p>

Netherlands: the 30% ruling

Works out the real allowance, including the salary condition that quietly trims it below a full 30%.

Paste this where you want it
<iframe src="https://europaycalc.com/embed/30-percent-ruling.html"
        width="100%" height="510" style="border:0;"
        title="Netherlands 30% ruling calculator" loading="lazy"></iframe>
<p>Calculator by <a href="https://europaycalc.com/netherlands-30-percent-ruling-calculator.html">EuroPayCalc</a></p>

Mortgage & purchase costs

Monthly payment plus the cash needed on completion day — Grunderwerbsteuer by Bundesland, Dutch kosten koper, Irish stamp duty.

Paste this where you want it
<iframe src="https://europaycalc.com/embed/mortgage.html"
        width="100%" height="890" style="border:0;"
        title="EU mortgage calculator" loading="lazy"></iframe>
<p>Calculator by <a href="https://europaycalc.com/eu-mortgage-calculator.html">EuroPayCalc</a></p>

Optional: close the gap under the widget

The heights in the snippets are set tall enough that nothing ever scrolls inside the frame, on any screen width. The cost is some empty space underneath on a wide screen — it is transparent, so it reads as margin rather than a box. If you would rather the frame track its content exactly, including when a reader switches country, add this once anywhere on the page:

Optional auto-resize
<script>
window.addEventListener("message", function (e) {
  if (!e.data || e.data.type !== "europaycalc:height") return;
  document.querySelectorAll("iframe.europaycalc").forEach(function (f) {
    if (f.contentWindow === e.source) f.style.height = e.data.height + "px";
  });
});
</script>

Add class="europaycalc" to the iframe for this to find it. The message carries a single number — the widget's height — and nothing about your visitors.

The terms, in full

  • Free, commercial sites included. No licence to buy, no attribution fee, no limit on page views.
  • Keep the credit link visible. That link is the entire price. Please do not add rel="nofollow" or rel="sponsored" to it — nothing was paid or exchanged here, so those would misdescribe it.
  • Word the link however you like. The snippet says "EuroPayCalc" because that is honest and plain. If different wording fits your page better, change it — we would rather the link read naturally than match a template.
  • Do not present the figures as advice. These are estimates for a single person on a standard contract. Each widget says so.
  • Tell us if a number looks wrong. Email us — corrections to tax figures get fixed first, ahead of everything else.

One thing we will not do: change a widget's behaviour under you. If a calculator ever needs a breaking change, it ships as a new URL and the old one keeps working.