Wilson Partners

Stamp Duty calculator.

Estimate the property transaction tax due on a UK residential purchase — SDLT in England & Northern Ireland, LBTT in Scotland or LTT in Wales — using 2025/26 rates.

Rates last updated: April 2025.

£

Total agreed price for the property.

Non-UK residents pay an additional 2% on the whole price.

Show what you'd pay if this were a second home or buy-to-let.

Need tailored advice?

Speak to our property tax team for personalised guidance on your purchase.

Get in touch

Embed this calculator.

Paste this snippet into any web page. The calculator loads without the header and the iframe height adapts to its content automatically.

<!-- Wilson Partners Stamp Duty calculator embed -->
<iframe
  id="wp-stampduty"
  src="https://wilson-partners-stamp-duty-calculator.lovable.app/?embed=true"
  title="Stamp Duty calculator"
  style="width:1px;min-width:100%;border:0;display:block;"
  loading="lazy"
  scrolling="no"
></iframe>
<script>
  (function () {
    var iframe = document.getElementById('wp-stampduty');
    if (!iframe) return;

    // Fallback listener — works even if the iframe-resizer CDN script is
    // delayed, lazy-loaded, or blocked. The embed page posts its height
    // continuously (on resize + on interval), so we can never miss it.
    window.addEventListener('message', function (event) {
      var data = event.data;
      if (!data || typeof data !== 'object') return;
      if (data.type === 'wp-calc:resize' && typeof data.height === 'number') {
        iframe.style.height = data.height + 'px';
      }
    });

    // Ask the embed for its current height once we're listening, in case it
    // already posted its first message before this script attached.
    var requestHeight = function () {
      try {
        iframe.contentWindow &&
          iframe.contentWindow.postMessage({ type: 'wp-calc:request-height' }, '*');
      } catch (e) {}
    };
    iframe.addEventListener('load', requestHeight);
    // Also poll briefly in case 'load' already fired.
    var tries = 0;
    var poll = setInterval(function () {
      requestHeight();
      if (++tries > 10) clearInterval(poll);
    }, 300);
  })();
</script>
<!-- Optional: also enable iframe-resizer for pixel-perfect sizing -->
<script src="https://cdn.jsdelivr.net/npm/@iframe-resizer/parent@5"></script>
<script>
  if (typeof iframeResize === 'function') {
    iframeResize({ license: 'GPLv3' }, '#wp-stampduty');
  }
</script>

Prefer a fixed height? Remove the <script> block and set the iframe's height attribute to a value that suits your layout (e.g. 1400).

This calculator provides an estimate for illustrative purposes only and does not constitute tax advice. Please seek professional advice before making a purchase.