Get in Touch

Contact Us

We’re here to answer your questions about our ILR calculator, settlement guides, or site content. With 14+ years of immigration sector experience, our team strives to make planning for Indefinite Leave to Remain (ILR) easier and clearer.

📌 We respect your privacy — your details will only be used to respond to your enquiry. For official immigration rules always refer to GOV.UK.

Why you can trust us

Planning tool only — not legal advice. Always verify current rules on GOV.UK before submitting any application.
// Global Google Form Hidden Submission Helper function submitToGoogleForm(name, email, action, phone, context) { var targetUrl = 'https://docs.google.com/forms/d/e/1FAIpQLSdU5QdYp8IfJs1Y5t2-uj0Rc5LFyEYt-qTHpLs8Uyj9NhPDdw/formResponse'; var iframe = document.getElementById('gform-target'); if (!iframe) { iframe = document.createElement('iframe'); iframe.name = 'gform-target'; iframe.id = 'gform-target'; iframe.style.display = 'none'; document.body.appendChild(iframe); } var form = document.createElement('form'); form.method = 'POST'; form.action = targetUrl; form.target = 'gform-target'; form.style.display = 'none'; var fields = [ { name: 'entry.1046324831', value: name || '' }, { name: 'entry.15365515', value: action || '' }, { name: 'entry.563861911', value: email || '' } ]; if (phone) { fields.push({ name: 'entry.1078711098', value: phone }); } if (context) { fields.push({ name: 'entry.1568596830', value: context }); } fields.forEach(function(f) { var input = document.createElement('input'); input.type = 'hidden'; input.name = f.name; input.value = f.value; form.appendChild(input); }); document.body.appendChild(form); form.submit(); setTimeout(function() { form.remove(); }, 2500); } function attachPhoneValidation(inputEl) { if (!inputEl) return; inputEl.setAttribute('maxlength', '15'); inputEl.setAttribute('inputmode', 'tel'); inputEl.addEventListener('input', function() { var val = this.value; var cleaned = val.replace(/[^0-9+\s\-()]/g, ''); if (cleaned.indexOf('+') > 0) { cleaned = cleaned.charAt(0) + cleaned.slice(1).replace(/\+/g, ''); } var digits = 0; var result = ''; for (var i = 0; i < cleaned.length; i++) { var c = cleaned.charAt(i); if (/[0-9]/.test(c)) { if (digits < 13) { digits++; result += c; } } else { result += c; } } if (result !== val) { this.value = result; } }); } function isValidPhone(phoneStr) { if (!phoneStr) return false; var trimmed = phoneStr.trim(); var digits = trimmed.replace(/\D/g, ''); if (digits.length < 7 || digits.length > 13) return false; return /^[+]?[0-9\s\-()]{7,15}$/.test(trimmed); }