🌿 BNG Self-Build Exemption Checker

Answer three quick questions to see whether your project may still be exempt from Biodiversity Net Gain after 31 July 2026.

  <div class="cg-element-step" id="cg-step-1">
    <label for="cg-app-status">1. Have you already submitted a valid planning application?</label>
    <div class="cg-element-radio-group" id="cg-app-status">
      <label class="cg-element-radio-option" id="cg-opt-app-yes">
        <input type="radio" name="app_status" value="yes" /> Yes — submitted and validated before 31 July 2026
      </label>
      <label class="cg-element-radio-option" id="cg-opt-app-no">
        <input type="radio" name="app_status" value="no" /> No — not yet submitted
      </label>
    </div>
  </div>

  <div class="cg-element-step" id="cg-step-2">
    <label>2. What is the approximate development footprint (plot size)?</label>
    <p class="cg-element-sublabel">Enter the area of land being developed in square metres (not your total land holding).</p>
    <input
      type="number"
      id="cg-plot-size"
      class="cg-element-input-field"
      placeholder="e.g. 1500 (for 0.15ha)"
      min="1"
      max="99999"
      aria-label="Development footprint in square metres"
    />
  </div>

  <div class="cg-element-step" id="cg-step-3">
    <label>3. Is the development temporary (conditioned for 5 years or less)?</label>
    <div class="cg-element-radio-group" id="cg-temp-status">
      <label class="cg-element-radio-option" id="cg-opt-temp-yes">
        <input type="radio" name="temp_status" value="yes" /> Yes — planning permission will be temporary (≤5 years)
      </label>
      <label class="cg-element-radio-option" id="cg-opt-temp-no">
        <input type="radio" name="temp_status" value="no" /> No — permanent or longer-term permission
      </label>
      <label class="cg-element-radio-option" id="cg-opt-temp-unsure">
        <input type="radio" name="temp_status" value="unsure" /> Not sure
      </label>
    </div>
  </div>

  <button class="cg-element-btn" id="cg-check-btn" onclick="cg_checkExemption()">Check My Exemption Status →</button>

  <div class="cg-element-result" id="cg-result-box" aria-live="polite"></div>
  <button class="cg-element-reset" id="cg-reset-btn" onclick="cg_resetChecker()">← Start again</button>

  <p class="cg-element-disclaimer">
    ⚠️ This tool provides indicative guidance only and does not constitute legal or professional planning advice. Always confirm your position with your local planning authority and a qualified ecologist. Rules are based on Defra's confirmed changes in force from 31 July 2026; regulations are expected to be laid before Parliament's summer recess.
  </p>
</div>

function cg_getRadioValue(name) {
var radios = document.querySelectorAll(‘input[name=”‘ + name + ‘”]’);
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) return radios[i].value;
}
return null;
}

function cg_checkExemption() {
var appStatus = cg_getRadioValue('app_status');
var plotSizeRaw = document.getElementById('cg-plot-size').value;
var tempStatus = cg_getRadioValue('temp_status');
var resultBox = document.getElementById('cg-result-box');
var resetBtn = document.getElementById('cg-reset-btn');

if (!appStatus || !plotSizeRaw || !tempStatus) {
resultBox.className = 'cg-element-result cg-result-likely-exempt';
resultBox.style.display = 'block';
resultBox.innerHTML = '

⚠️ Please answer all three questions

Make sure you have selected an option for all questions and entered your plot size before checking.

‘;
resetBtn.style.display = ‘inline-block’;
return;
}

var plotSize = parseFloat(plotSizeRaw);
var plotHa = plotSize / 10000;
var html = ”;

// Logic tree
if (appStatus === ‘yes’) {
resultBox.className = ‘cg-element-result cg-result-exempt’;
html = ‘

✅ Likely Exempt (Transitional)

‘;
html += ‘

Applications submitted and validated before 31 July 2026 should be assessed under the rules in force at the time of submission, which include the self-build/custom-build exemption.

‘;
html += ‘

  • Confirm with your LPA that your application is formally validated.
  • Ensure your exemption claim is clearly documented in your submission.
  • Monitor Defra guidance on transitional provisions when regulations are published.

‘;
} else if (tempStatus === ‘yes’) {
resultBox.className = ‘cg-element-result cg-result-exempt’;
html = ‘

✅ Likely Exempt (Temporary Development)

‘;
html += ‘

From 31 July 2026, developments conditioned as temporary for five years or less are expected to qualify for the new temporary-development BNG exemption.

‘;
html += ‘

  • Ensure “temporary” is formally conditioned in your planning permission — you cannot self-certify.
  • Confirm the exact wording of the exemption with your LPA once regulations are published.
  • Seek ecological advice to confirm eligibility.

‘;
} else if (plotHa < 0.2) {
resultBox.className = 'cg-element-result cg-result-exempt';
html = '

✅ Likely Exempt (0.2ha Threshold)

‘;
html += ‘

Your development footprint of approximately ‘ + plotHa.toFixed(3) + ‘ ha (‘ + Math.round(plotSize) + ‘ m²) appears to fall below the new 0.2-hectare exemption threshold.

‘;
html += ‘

  • Even though the self-build exemption is ending, the 0.2ha exemption should apply from 31 July 2026.
  • Confirm that the 0.2ha is measured against your development footprint, not your total land holding.
  • Get a formal measurement confirmed by a surveyor or ecologist.

‘;
} else if (plotHa >= 0.2 && plotHa < 0.25) {
resultBox.className = 'cg-element-result cg-result-likely-exempt';
html = '

⚠️ Borderline — Professional Advice Needed

‘;
html += ‘

Your plot size of approximately ‘ + plotHa.toFixed(3) + ‘ ha (‘ + Math.round(plotSize) + ‘ m²) is close to the 0.2ha threshold. Small measurement differences could determine whether you are exempt.

‘;
html += ‘

  • Commission an accurate survey of your development footprint immediately.
  • The self-build exemption ends 31 July 2026 — do not rely on it after that date.
  • Seek advice from a qualified ecologist or biodiversity surveyor now.
  • Consider submitting your application before 31 July if you can rely on the current self-build exemption.

‘;
} else {
resultBox.className = ‘cg-element-result cg-result-not-exempt’;
html = ‘

❌ BNG Compliance Required

‘;
html += ‘

Your development footprint of approximately ‘ + plotHa.toFixed(2) + ‘ ha (‘ + Math.round(plotSize) + ‘ m²) exceeds the 0.2ha threshold, and the self-build/custom-build exemption ends on 31 July 2026.

‘;
html += ‘

  • You will need to demonstrate 10% Biodiversity Net Gain from 31 July 2026.
  • Commission a Preliminary Ecological Appraisal (PEA) and BNG metric calculation immediately.
  • Consider whether on-site or off-site BNG delivery is more practical for your plot.
  • If you can submit a valid application before 31 July 2026, the current self-build exemption may still apply — speak to your LPA urgently.
  • Budget for BNG compliance costs early — off-site unit purchase may be the most efficient route.

‘;
}

resultBox.innerHTML = html;
resultBox.style.display = ‘block’;
resetBtn.style.display = ‘inline-block’;
resultBox.scrollIntoView({ behavior: ‘smooth’, block: ‘nearest’ });
}

function cg_resetChecker() {
var radios = document.querySelectorAll(‘.cg-element-radio-option input[type=”radio”]’);
radios.forEach(function(r) { r.checked = false; });
var options = document.querySelectorAll(‘.cg-element-radio-option’);
options.forEach(function(o) { o.classList.remove(‘cg-selected’); });
document.getElementById(‘cg-plot-size’).value = ”;
document.getElementById(‘cg-result-box’).style.display = ‘none’;
document.getElementById(‘cg-result-box’).innerHTML = ”;
document.getElementById(‘cg-reset-btn’).style.display = ‘none’;
}

// Highlight selected radio options
document.querySelectorAll(‘.cg-element-radio-option input[type=”radio”]’).forEach(function(radio) {
radio.addEventListener(‘change’, function() {
var groupName = this.name;
document.querySelectorAll(‘input[name=”‘ + groupName + ‘”]’).forEach(function(r) {
r.closest(‘.cg-element-radio-option’).classList.remove(‘cg-selected’);
});
this.closest(‘.cg-element-radio-option’).classList.add(‘cg-selected’);
});
});