- Many UK letting agents expect your yearly income before tax to be at least 30 times the monthly rent, so on a £35,000 salary you'd usually pass their check on rent of up to about £1,167 a month.
- A comfortable rent is usually lower. Spending around 30% of your take-home pay leaves room for council tax, bills, food and savings, which on the same salary is around £718 a month.
- If you can afford the rent but don't pass the agent's income check, maybe because you're a student, new to the UK or self-employed, Rentmigo may be able to act as your guarantor instead.
Before you book viewings, it helps to know two numbers: the highest rent a letting agent is likely to approve, and the rent you can actually live with once bills and food are paid.
Our calculator helps you work out both, plus the cash you'll need before you move in, including what Rentmigo would cost if you need a guarantor.
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Rent affordability calculator | Rentmigo</title>
<meta name="robots" content="noindex">
<style>
/* ---- Brand tokens: swap these to match the Rentmigo site ---- */
:root {
--rmc-ink: #1D2B36;
--rmc-muted: #5A6872;
--rmc-line: #DCE3E8;
--rmc-panel: #F3F6F8;
--rmc-paper: #FFFFFF;
--rmc-brand: #1F5F8B;
--rmc-brand-ink: #FFFFFF;
--rmc-good: #2E7D4F;
--rmc-good-soft: #DDEFE3;
--rmc-warn: #A85A12;
--rmc-warn-soft: #F6E7D6;
--rmc-over: #9B2C2C;
--rmc-over-soft: #F3DCDC;
--rmc-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--rmc-radius-lg: 14px;
--rmc-radius-sm: 8px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: transparent; }
body { font-family: var(--rmc-font); color: var(--rmc-ink); line-height: 1.5; font-size: 16px; }
.rmc { max-width: 960px; margin: 0 auto; background: var(--rmc-paper); border: 1px solid var(--rmc-line); border-radius: var(--rmc-radius-lg); overflow: hidden; }
.rmc-head { padding: 22px 24px 18px; border-bottom: 1px solid var(--rmc-line); }
.rmc-head h2 { margin: 0 0 4px; font-size: 1.35rem; line-height: 1.25; font-weight: 700; }
.rmc-head p { margin: 0; color: var(--rmc-muted); font-size: 0.95rem; max-width: 62ch; }
.rmc-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .rmc-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
/* Inputs */
.rmc-inputs { padding: 22px 24px; background: var(--rmc-panel); }
@media (min-width: 760px) { .rmc-inputs { border-right: 1px solid var(--rmc-line); } }
.rmc-field { margin-bottom: 18px; }
.rmc-field:last-child { margin-bottom: 0; }
.rmc-label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 6px; }
.rmc-hint { display: block; color: var(--rmc-muted); font-size: 0.85rem; margin-top: 6px; }
.rmc-money { position: relative; }
.rmc-money span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--rmc-muted); pointer-events: none; }
.rmc input[type="text"], .rmc select {
width: 100%; font: inherit; color: var(--rmc-ink); background: var(--rmc-paper);
border: 1px solid #BFCAD2; border-radius: var(--rmc-radius-sm); padding: 10px 12px; min-height: 44px;
}
.rmc-money input { padding-left: 26px; }
.rmc input:focus-visible, .rmc select:focus-visible, .rmc button:focus-visible, .rmc a:focus-visible, .rmc-check input:focus-visible + span {
outline: 3px solid var(--rmc-brand); outline-offset: 2px;
}
.rmc-check { display: flex; gap: 10px; align-items: center; font-size: 0.95rem; cursor: pointer; }
.rmc-check input { width: 18px; height: 18px; accent-color: var(--rmc-brand); }
.rmc-seg { display: flex; border: 1px solid #BFCAD2; border-radius: var(--rmc-radius-sm); overflow: hidden; background: var(--rmc-paper); }
.rmc-seg button { flex: 1; font: inherit; font-size: 0.92rem; border: 0; background: transparent; color: var(--rmc-ink); padding: 10px 6px; min-height: 44px; cursor: pointer; }
.rmc-seg button + button { border-left: 1px solid #BFCAD2; }
.rmc-seg button[aria-pressed="true"] { background: var(--rmc-brand); color: var(--rmc-brand-ink); font-weight: 600; }
.rmc-divider { border: 0; border-top: 1px solid var(--rmc-line); margin: 20px 0; }
.rmc-hidden { display: none !important; }
/* Results */
.rmc-results { padding: 22px 24px 24px; }
.rmc-empty { color: var(--rmc-muted); padding: 28px 0; }
.rmc-figures { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-bottom: 1px solid var(--rmc-line); }
.rmc-figure { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; border-top: 1px solid var(--rmc-line); }
.rmc-figure:first-child { border-top: 0; padding-top: 0; }
.rmc-figure h3 { margin: 0; font-size: 0.98rem; font-weight: 600; }
.rmc-figure p { margin: 2px 0 0; color: var(--rmc-muted); font-size: 0.85rem; max-width: 44ch; }
.rmc-figure strong { font-size: 1.5rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rmc-figure strong small { font-size: 0.8rem; font-weight: 500; color: var(--rmc-muted); }
.rmc-figure.is-agent strong { color: var(--rmc-brand); }
.rmc-takehome { font-size: 0.85rem; color: var(--rmc-muted); margin: 10px 0 0; }
/* Rent ruler: the one visual moment */
.rmc-ruler { margin: 22px 0 6px; }
.rmc-ruler-title { font-weight: 600; font-size: 0.95rem; margin: 0 0 30px; }
.rmc-track { position: relative; height: 14px; border-radius: 7px; background: var(--rmc-over-soft); }
.rmc-zone { position: absolute; top: 0; bottom: 0; left: 0; }
.rmc-zone.is-stretch { background: var(--rmc-warn-soft); border-radius: 7px 0 0 7px; }
.rmc-zone.is-comfy { background: var(--rmc-good-soft); border-radius: 7px 0 0 7px; }
.rmc-agent-line { position: absolute; top: -6px; bottom: -6px; width: 2px; background: var(--rmc-brand); }
.rmc-agent-line span { position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); font-size: 0.75rem; color: var(--rmc-brand); white-space: nowrap; font-weight: 600; }
.rmc-pin { position: absolute; top: 50%; width: 22px; height: 22px; border-radius: 50%; background: var(--rmc-ink); border: 3px solid var(--rmc-paper); box-shadow: 0 0 0 1px var(--rmc-ink); transform: translate(-50%, -50%); transition: left 0.25s ease; }
.rmc-pin span { position: absolute; top: calc(100% + 6px); left: 50%; transform: translateX(-50%); font-size: 0.78rem; font-weight: 700; white-space: nowrap; color: var(--rmc-ink); }
.rmc-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 34px 0 0; padding: 0; list-style: none; font-size: 0.8rem; color: var(--rmc-muted); }
.rmc-legend li { display: flex; align-items: center; gap: 6px; }
.rmc-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { .rmc-pin { transition: none; } }
/* Verdict + upfront */
.rmc-verdict { margin: 20px 0 0; padding: 14px 16px; border-radius: var(--rmc-radius-sm); border-left: 4px solid var(--rmc-brand); background: var(--rmc-panel); }
.rmc-verdict.is-good { border-left-color: var(--rmc-good); }
.rmc-verdict.is-warn { border-left-color: var(--rmc-warn); }
.rmc-verdict.is-over { border-left-color: var(--rmc-over); }
.rmc-verdict h3 { margin: 0 0 4px; font-size: 1rem; }
.rmc-verdict p { margin: 0 0 8px; font-size: 0.92rem; }
.rmc-verdict p:last-child { margin-bottom: 0; }
.rmc-upfront { margin: 22px 0 0; }
.rmc-upfront h3 { margin: 0 0 2px; font-size: 1rem; }
.rmc-upfront > p { margin: 0 0 10px; color: var(--rmc-muted); font-size: 0.85rem; }
.rmc-table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.rmc-table td { padding: 9px 0; border-top: 1px solid var(--rmc-line); vertical-align: top; }
.rmc-table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; padding-left: 12px; font-weight: 600; }
.rmc-table small { display: block; color: var(--rmc-muted); font-size: 0.8rem; font-weight: 400; }
.rmc-table tr.is-total td { border-top: 2px solid var(--rmc-ink); font-weight: 700; }
.rmc-table tr.is-rentmigo td { background: var(--rmc-panel); }
.rmc-table tr.is-rentmigo td:first-child { padding-left: 10px; }
.rmc-table tr.is-rentmigo td:last-child { padding-right: 10px; }
.rmc-cta { display: inline-block; margin-top: 4px; background: var(--rmc-brand); color: var(--rmc-brand-ink); text-decoration: none; font-weight: 600; padding: 11px 18px; border-radius: var(--rmc-radius-sm); min-height: 44px; }
.rmc-cta:hover { filter: brightness(1.08); }
.rmc-foot { padding: 14px 24px; border-top: 1px solid var(--rmc-line); font-size: 0.8rem; color: var(--rmc-muted); background: var(--rmc-panel); }
.rmc-foot p { margin: 0 0 4px; }
.rmc-foot p:last-child { margin: 0; }
</style>
</head>
<body>
<div class="rmc" id="rmc">
<div class="rmc-head">
<h2>How much rent can you afford?</h2>
<p>See the rent a letting agent is likely to approve, what's comfortable on your take-home pay, and the cash you'll need before moving in.</p>
</div>
<div class="rmc-grid">
<!-- Inputs -->
<div class="rmc-inputs">
<div class="rmc-field">
<label class="rmc-label" for="rmc-income1">Your yearly income before tax</label>
<div class="rmc-money"><span>£</span><input type="text" inputmode="numeric" id="rmc-income1" placeholder="35,000" autocomplete="off"></div>
<span class="rmc-hint">No UK salary yet? Enter 0. Many agents' checks are built around UK earnings, so see the guarantor note below.</span>
</div>
<div class="rmc-field">
<label class="rmc-check"><input type="checkbox" id="rmc-joint"><span>I'm renting with someone else</span></label>
</div>
<div class="rmc-field rmc-hidden" id="rmc-income2-wrap">
<label class="rmc-label" for="rmc-income2">Their yearly income before tax</label>
<div class="rmc-money"><span>£</span><input type="text" inputmode="numeric" id="rmc-income2" placeholder="30,000" autocomplete="off"></div>
<span class="rmc-hint">Some agents add sharers' incomes together. Others check each person's share of the rent separately.</span>
</div>
<div class="rmc-field">
<label class="rmc-label" for="rmc-nation">Where do you pay income tax?</label>
<select id="rmc-nation">
<option value="ruk">England, Wales or Northern Ireland</option>
<option value="scot">Scotland</option>
</select>
</div>
<div class="rmc-field">
<label class="rmc-label" for="rmc-net">Monthly take-home pay (optional)</label>
<div class="rmc-money"><span>£</span><input type="text" inputmode="numeric" id="rmc-net" placeholder="We'll estimate it" autocomplete="off"></div>
<span class="rmc-hint">Add this if you know it. It's more accurate if you pay into a pension or repay a student loan. If you're renting with someone, enter your combined take-home pay.</span>
</div>
<hr class="rmc-divider">
<div class="rmc-field">
<label class="rmc-label" for="rmc-rent">Monthly rent you're looking at (optional)</label>
<div class="rmc-money"><span>£</span><input type="text" inputmode="numeric" id="rmc-rent" placeholder="1,100" autocomplete="off"></div>
<span class="rmc-hint">Add a rent to see whether it fits and what you'd pay upfront.</span>
</div>
<div class="rmc-field">
<span class="rmc-label" id="rmc-g-label">Do you have a UK guarantor?</span>
<div class="rmc-seg" role="group" aria-labelledby="rmc-g-label">
<button type="button" data-g="yes" aria-pressed="false">Yes</button>
<button type="button" data-g="no" aria-pressed="false">No</button>
<button type="button" data-g="unsure" aria-pressed="true">Not sure</button>
</div>
<span class="rmc-hint">A guarantor agrees to pay your rent if you can't. Agents often ask for one if you don't pass their income check.</span>
</div>
</div>
<!-- Results -->
<div class="rmc-results" aria-live="polite">
<p class="rmc-empty" id="rmc-empty">Enter your income to see your rent budgets.</p>
<div id="rmc-out" class="rmc-hidden">
<div class="rmc-figures">
<div class="rmc-figure is-agent">
<div>
<h3>Letting agent income check</h3>
<p>Many agents want yearly income of at least 30 times the monthly rent. This is their rule, not the law, and it varies.</p>
</div>
<strong id="rmc-agent">£0<small>/mo</small></strong>
</div>
<div class="rmc-figure">
<div>
<h3>Comfortable budget</h3>
<p>About 30% of your take-home pay, leaving room for council tax, bills, food and savings.</p>
</div>
<strong id="rmc-comfy">£0<small>/mo</small></strong>
</div>
<div class="rmc-figure">
<div>
<h3>Stretch budget</h3>
<p>About 40% of your take-home pay. This is our illustrative upper limit, not an official rule, and leaves much less room for other costs.</p>
</div>
<strong id="rmc-stretch">£0<small>/mo</small></strong>
</div>
</div>
<p class="rmc-takehome" id="rmc-takehome"></p>
<div class="rmc-ruler" id="rmc-ruler">
<p class="rmc-ruler-title" id="rmc-ruler-title">Where your budgets sit</p>
<div class="rmc-track" aria-hidden="true">
<div class="rmc-zone is-stretch" id="rmc-zone-stretch"></div>
<div class="rmc-zone is-comfy" id="rmc-zone-comfy"></div>
<div class="rmc-agent-line" id="rmc-agent-line"><span>Agent check</span></div>
<div class="rmc-pin rmc-hidden" id="rmc-pin"><span id="rmc-pin-label"></span></div>
</div>
<ul class="rmc-legend">
<li><i style="background:var(--rmc-good-soft)"></i>Comfortable</li>
<li><i style="background:var(--rmc-warn-soft)"></i>Stretch</li>
<li><i style="background:var(--rmc-over-soft)"></i>Over 40% of take-home</li>
<li><i style="background:var(--rmc-brand);width:3px"></i>Agent check limit</li>
</ul>
</div>
<div class="rmc-verdict rmc-hidden" id="rmc-verdict"></div>
<div class="rmc-upfront rmc-hidden" id="rmc-upfront">
<h3>What you'd pay before moving in</h3>
<p>Based on the rules for new private tenancies in England. Wales, Scotland and Northern Ireland have different deposit rules.</p>
<table class="rmc-table">
<tbody id="rmc-upfront-body"></tbody>
</table>
</div>
</div>
</div>
</div>
<div class="rmc-foot">
<p>Take-home pay is estimated using 2026/27 income tax and National Insurance rates, before pension, student loan or other deductions. Figures above £100,000 are approximate.</p>
<p>These are estimates to help you plan, not financial advice. Landlords, letting agents and referencing companies set their own criteria.</p>
</div>
</div>
<script>
(function () {
var RENTMIGO_URL = "https://www.rentmigo.co.uk/get-a-rent-guarantor";
var $ = function (id) { return document.getElementById(id); };
var gbp = new Intl.NumberFormat("en-GB", { style: "currency", currency: "GBP", maximumFractionDigits: 0 });
var state = { guarantor: "unsure" };
function num(el) {
var v = (el.value || "").replace(/[^0-9.]/g, "");
return v === "" ? null : Math.max(0, parseFloat(v));
}
function formatInput(el) {
var n = num(el);
if (n === null) return;
el.value = Math.round(n).toLocaleString("en-GB");
}
function personalAllowance(g) {
var pa = 12570;
if (g > 100000) pa = Math.max(0, pa - (g - 100000) / 2);
return pa;
}
// Bands are on taxable income (income above the Personal Allowance), 2026/27
var BANDS = {
ruk: [[37700, 0.20], [125140, 0.40], [Infinity, 0.45]],
scot: [[3967, 0.19], [16956, 0.20], [31092, 0.21], [62430, 0.42], [125140, 0.45], [Infinity, 0.48]]
};
function incomeTax(g, nation) {
var taxable = Math.max(0, g - personalAllowance(g));
var tax = 0, prev = 0, bands = BANDS[nation];
for (var i = 0; i < bands.length; i++) {
var top = bands[i][0], rate = bands[i][1];
if (taxable <= prev) break;
tax += (Math.min(taxable, top) - prev) * rate;
prev = top;
}
return tax;
}
// Employee Class 1 NI, 2026/27, annualised
function nationalInsurance(g) {
var ni = 0;
if (g > 12570) ni += (Math.min(g, 50270) - 12570) * 0.08;
if (g > 50270) ni += (g - 50270) * 0.02;
return ni;
}
function netMonthly(g, nation) {
if (!g) return 0;
return (g - incomeTax(g, nation) - nationalInsurance(g)) / 12;
}
function weekly(rent) { return rent * 12 / 52; }
function setGuarantor(val) {
state.guarantor = val;
var btns = document.querySelectorAll(".rmc-seg button");
for (var i = 0; i < btns.length; i++) {
btns[i].setAttribute("aria-pressed", btns[i].getAttribute("data-g") === val ? "true" : "false");
}
render();
}
function pct(v, max) { return Math.max(0, Math.min(100, (v / max) * 100)) + "%"; }
function ctaHTML(text) {
return '<p><a class="rmc-cta" href="' + RENTMIGO_URL + '" target="_top" rel="noopener">' + text + '</a></p>';
}
function verdict(rent, agent, comfy, stretch, hasIncome) {
var g = state.guarantor, noG = g !== "yes";
var cls, title, body = "";
if (!hasIncome) {
cls = "is-warn";
title = "Without UK earnings, a standard income check is hard to pass";
body = "<p>That doesn't mean you can't afford the rent. Agents usually ask for a guarantor instead.</p>";
if (noG) {
body += "<p>If you don't have someone in the UK who qualifies, Rentmigo can look at student finance, scholarships, family support, savings and overseas income together, and may be able to act as your guarantor.</p>" + ctaHTML("See how Rentmigo works");
} else {
body += "<p>Your guarantor will usually need to pass their own income and credit checks.</p>";
}
return { cls: cls, html: "<h3>" + title + "</h3>" + body };
}
var passAgent = rent <= agent;
if (!passAgent && rent <= stretch) {
cls = "is-warn";
title = "You may be able to afford this, but not pass the agent's income check";
body = "<p>At " + gbp.format(rent) + " a month, an agent using the 30x check would want yearly income of about " + gbp.format(rent * 30) + ". This is the situation where agents usually ask for a guarantor.</p>";
body += noG
? "<p>If you don't have a UK guarantor who meets their requirements, Rentmigo may be able to act as your guarantor instead, as long as your landlord or agent accepts it.</p>" + ctaHTML("Check if Rentmigo can be your guarantor")
: "<p>Your guarantor will usually need to pass their own check. Many agents expect guarantors to earn more than tenants do.</p>";
} else if (!passAgent) {
cls = "is-over";
title = "This rent is above both the agent check and your stretch budget";
body = "<p>It would take more than 40% of your take-home pay. A guarantor can help you pass referencing, but it doesn't change what you pay each month, so it's worth looking at lower rents as well.</p>";
} else if (rent > stretch) {
cls = "is-warn";
title = "You'd probably pass the agent's check, but it's tight";
body = "<p>This rent is more than 40% of your take-home pay. Before you commit, add up council tax, energy, water and broadband to check what's left.</p>";
} else if (rent > comfy) {
cls = "is-good";
title = "This rent passes the agent check and sits within your stretch budget";
body = "<p>It's above the 30% comfortable level, so keep an eye on bills and other monthly costs.</p>";
} else {
cls = "is-good";
title = "This rent fits comfortably";
body = "<p>It passes the 30x agent check and is within about 30% of your take-home pay.</p>";
}
if (passAgent && noG) {
body += "<p>Agents can still ask for a guarantor if you're new to the UK, have no UK credit history or earn from overseas. If that happens and you don't have one, <a href=\"" + RENTMIGO_URL + "\" target=\"_top\" rel=\"noopener\">Rentmigo may be able to act as your guarantor</a>.</p>";
}
return { cls: cls, html: "<h3>" + title + "</h3>" + body };
}
function upfrontRows(rent) {
var wk = weekly(rent), annual = rent * 12, rows = "";
var depWeeks = annual >= 50000 ? 6 : 5;
var deposit = wk * depWeeks;
var capNote = annual >= 100000
? "Tenancies over £100,000 a year aren't covered by the usual deposit cap. Check with the agent."
: "Up to " + depWeeks + " weeks' rent" + (annual >= 50000 ? " because the yearly rent is £50,000 or more" : "") + ". Protected in a government-approved scheme and returned at the end, minus any agreed deductions.";
rows += "<tr><td>Holding deposit<small>Up to 1 week's rent to reserve the property. It's usually put towards your first rent or deposit if you agree.</small></td><td>" + gbp.format(wk) + "</td></tr>";
rows += "<tr><td>Tenancy deposit<small>" + capNote + "</small></td><td>" + gbp.format(deposit) + "</td></tr>";
rows += "<tr><td>First month's rent<small>Since 1 May 2026, landlords in England can't ask for more than one month's rent before the tenancy starts.</small></td><td>" + gbp.format(rent) + "</td></tr>";
rows += "<tr class=\"is-total\"><td>Usual total before moving in<small>Deposit plus first month's rent, with the holding deposit counted towards these.</small></td><td>" + gbp.format(deposit + rent) + "</td></tr>";
if (state.guarantor !== "yes") {
var low = wk * 2, high = rent;
rows += "<tr class=\"is-rentmigo\"><td>If you use Rentmigo as your guarantor<small>One-off fee of between two weeks' and one month's rent, depending on your application. It covers up to three years at that property.</small></td><td>" + gbp.format(low) + " to " + gbp.format(high) + "</td></tr>";
}
return rows;
}
function render() {
var i1 = num($("rmc-income1"));
var joint = $("rmc-joint").checked;
var i2 = joint ? num($("rmc-income2")) : null;
var nation = $("rmc-nation").value;
var netOverride = num($("rmc-net"));
var rent = num($("rmc-rent"));
$("rmc-income2-wrap").classList.toggle("rmc-hidden", !joint);
if (i1 === null) {
$("rmc-empty").classList.remove("rmc-hidden");
$("rmc-out").classList.add("rmc-hidden");
postHeight();
return;
}
$("rmc-empty").classList.add("rmc-hidden");
$("rmc-out").classList.remove("rmc-hidden");
var gross = i1 + (i2 || 0);
var estNet = netMonthly(i1, nation) + netMonthly(i2 || 0, nation);
var net = netOverride !== null ? netOverride : estNet;
var agent = gross / 30, comfy = net * 0.30, stretch = net * 0.40;
var hasIncome = gross > 0 || net > 0;
$("rmc-agent").innerHTML = gbp.format(agent) + "<small>/mo</small>";
$("rmc-comfy").innerHTML = gbp.format(comfy) + "<small>/mo</small>";
$("rmc-stretch").innerHTML = gbp.format(stretch) + "<small>/mo</small>";
$("rmc-takehome").textContent = netOverride !== null
? "Using the take-home pay you entered: " + gbp.format(net) + " a month."
: "Estimated take-home pay: " + gbp.format(net) + " a month" + (joint ? " combined" : "") + ".";
// Ruler
var maxScale = Math.max(agent, stretch, rent || 0, 1) * 1.15;
$("rmc-zone-stretch").style.width = pct(stretch, maxScale);
$("rmc-zone-comfy").style.width = pct(comfy, maxScale);
$("rmc-agent-line").style.left = pct(agent, maxScale);
$("rmc-ruler").classList.toggle("rmc-hidden", !hasIncome);
var pin = $("rmc-pin");
if (rent) {
pin.classList.remove("rmc-hidden");
pin.style.left = pct(rent, maxScale);
$("rmc-pin-label").textContent = gbp.format(rent);
$("rmc-ruler-title").textContent = "Where " + gbp.format(rent) + " a month sits";
} else {
pin.classList.add("rmc-hidden");
$("rmc-ruler-title").textContent = "Where your budgets sit";
}
// Verdict and upfront costs
var v = $("rmc-verdict"), up = $("rmc-upfront");
if (rent) {
var res = verdict(rent, agent, comfy, stretch, hasIncome);
v.className = "rmc-verdict " + res.cls;
v.innerHTML = res.html;
$("rmc-upfront-body").innerHTML = upfrontRows(rent);
up.classList.remove("rmc-hidden");
} else {
v.className = "rmc-verdict rmc-hidden";
up.classList.add("rmc-hidden");
}
postHeight();
}
// Auto-resize when embedded in an iframe
var lastH = 0;
function postHeight() {
var h = document.documentElement.scrollHeight;
if (h !== lastH && window.parent !== window) {
lastH = h;
window.parent.postMessage({ type: "rentmigo-calculator-height", height: h }, "*");
}
}
if ("ResizeObserver" in window) new ResizeObserver(postHeight).observe(document.body);
window.addEventListener("load", postHeight);
["rmc-income1", "rmc-income2", "rmc-net", "rmc-rent"].forEach(function (id) {
$(id).addEventListener("input", render);
$(id).addEventListener("blur", function () { formatInput($(id)); });
});
$("rmc-joint").addEventListener("change", render);
$("rmc-nation").addEventListener("change", render);
var segBtns = document.querySelectorAll(".rmc-seg button");
for (var i = 0; i < segBtns.length; i++) {
segBtns[i].addEventListener("click", function () { setGuarantor(this.getAttribute("data-g")); });
}
render();
})();
</script>
</body>
</html>
Can you afford the rent but don't have a UK guarantor? Check your eligibility with Rentmigo.
How much rent can you afford in the UK?
Most letting agents will approve rent of up to one-thirtieth of your yearly income before tax. To work out this number, just divide your annual salary by 30. However, a comfortable rent is usually closer to 30% of your take-home pay.
Your income before tax is the salary in your contract. Your take-home pay is what reaches your bank account after tax and National Insurance, and it's what you actually pay rent from.
Here's how that looks on a hypothetical £35,000 salary:
Yearly income before tax ÷ 30: £1,167
Comfortable budget (30% of take-home pay): £718
Stretch budget (40% of take-home pay): £957
These figures assume take-home pay of about £2,393 a month, using 2026/27 tax and National Insurance rates in England, Wales and Northern Ireland, with no pension or student loan deductions.
Why the agent's figure is so much higher
The 30x check lets rent take up 40% of your pay before tax. On £35,000, a rent of £1,167 would use about 49% of your take-home pay, leaving around £1,200 for everything else.
There's no official rule on how much of your take-home pay should go on rent. The 30% and 40% figures are just what some people use to calculate actual affordability, not limits a landlord will hold you to.
For context, the median full-time salary in the UK was £39,039 in April 2025 (ONS), which would pass an agent's check on rent of up to about £1,301 a month.
Compare that with our UK rent statistics for 2026.
How much rent can you afford on £25k, £30k, £40k or £50k?
On a £30,000 salary, most agents would approve rent of up to £1,000 a month (a thirtieth), while a comfortable budget would be closer to £628 (30% of take home pay).
- On £25,000, take-home pay is about £1,793 a month. The agent check allows rent of up to £833, but a comfortable budget is about £538.
- On £30,000, take-home pay is about £2,093 a month. The agent check allows rent of up to £1,000, but a comfortable budget is about £628.
- On £35,000, take-home pay is about £2,393 a month. The agent check allows rent of up to £1,167, but a comfortable budget is about £718.
- On £40,000, take-home pay is about £2,693 a month. The agent check allows rent of up to £1,333, but a comfortable budget is about £808.
- On £50,000, take-home pay is about £3,293 a month. The agent check allows rent of up to £1,667, but a comfortable budget is about £988.
Importantly, your take-home pay will be lower if you pay into a pension or repay a student loan, so enter your real figure in the calculator if you know it. Scotland has different income tax bands, and the calculator has a Scotland option for this.
Renting with someone else? Some agents add your incomes together, while others check each person's share of the rent, so ask how they assess joint applications.
How do letting agents check if you can afford the rent?
Most landlords and letting agents run a referencing check alongside an affordability check. The usual affordability check is that your yearly income before tax is at least 30 times the monthly rent.
Referencing usually covers your ID, income, credit history and previous landlord references. In England, landlords must also carry out a Right to Rent check, which confirms you're legally allowed to rent there.
The 30x rule is an agent's requirement, not the law, and criteria vary, so one agent might accept you on a rent another turns down.
Why people who can afford the rent still fail referencing
You can have enough money for the rent and still fail referencing because your finances don't fit the normal mould.
This often happens if you:
- Are an international student paying rent from student loans, scholarships or family support rather than a UK salary
- Have just moved to the UK, so you have no UK payslips or credit history yet
- Are self-employed and your income changes month to month
- Are paid from overseas
If that sounds like you, read our guides on what landlords check when renting to international students and renting with a foreign income.
What happens if you don't pass?
If you don't pass the income check, the agent will usually ask for a guarantor, someone who agrees to pay your rent if you can't.
Guarantors normally need to live in the UK, have a good credit history and earn more than you'd need to as a tenant, often 36 times the monthly rent.
On a £1,200 flat, that's a guarantor earning around £43,200 a year, which is why parents abroad often can't help even when they'd like to. Our guide on who can be a guarantor in the UK explains the usual requirements.
No one who qualifies? Rentmigo can step in as your guarantor if you're approved and your landlord accepts us.
What other costs should you budget for?
Most advertised rents don't include council tax, gas, electricity, water or broadband, so your monthly housing costs will usually be higher than the rent on the listing.
Council tax is a local council charge that tenants normally pay. You can check a property's yearly charge on the council's website, and homes where everyone is a full-time student are usually exempt.
How much money do you need upfront to rent?
In England, you'll usually need a holding deposit, a tenancy deposit and your first month's rent before you move in:
- Holding deposit: up to one week's rent to reserve the property while checks are done. It's usually put towards your first rent or deposit if you agree.
- Tenancy deposit: up to five weeks' rent, or six weeks if the yearly rent is £50,000 or more. It's held in a government-approved scheme and returned at the end of your tenancy, minus any agreed deductions.
- First month's rent: since 1 May 2026, landlords in England can't take any rent before you sign the tenancy agreement, and can only ask for up to one month's rent before the tenancy starts.
So offering six months upfront instead of a guarantor is no longer an option for most new private tenancies in England. Read more about how the Renters' Rights Act affects international tenants.
Here's a hypothetical example for a £1,200 flat in England:
Tenancy deposit (five weeks' rent): £1,385
First month's rent: £1,200
Usual total before moving in: £2,585
Deposit rules are different elsewhere in the UK. Wales has no legal maximum on deposits at present, Northern Ireland caps them at one month's rent, and Scotland has its own limits.
What if you can afford the rent but fail the check?
You can usually still rent the property if you can give the landlord another form of security, and the most common one is a guarantor.
If the rent is within your stretch budget, the issue is how your income looks on paper, not whether you can pay.
You could ask a UK-based relative who qualifies, check for a university rent guarantee scheme, try a more flexible private landlord or use a professional guarantor service.
Our guide to alternatives to a UK guarantor covers each one.
How Rentmigo can help
Rentmigo acts as your rent guarantor if you can afford the rent but don't have someone suitable in the UK to ask. Instead of relying on a UK salary alone, we can look at salary, self-employment income, student loans, scholarships, family support and savings together.
That makes us a good fit for international students, expats moving to the UK for work, freelancers and anyone still building a UK credit history.
- The application usually takes around 5 to 10 minutes online.
- You pay one fee, never more than one month's rent.
- Your landlord or agent needs to accept a professional guarantor, so check with them first.
- If we ever pay rent on your behalf, you still owe that money and will need to pay it back.
Found a property and the guarantor is the only thing in the way? Start your Rentmigo application.




