From landlord to lender: why I invested at 10% instead of buying another rental property
Property118

From landlord to lender: why I invested at 10% instead of buying another rental property
The following is the risk warning prescribed by the FCA for promotions relating to non-readily realisable securities.
Commercial disclosure: I have personally invested in the type of loan note described in this article. Property118 may receive a commercial introduction fee if a reader subsequently invests. Property118 does not provide regulated investment advice.
Don’t invest unless you’re prepared to lose all the money you invest. This is a high-risk investment and you are unlikely to be protected if something goes wrong.
[Take 2 mins to learn more]
Selling a rental property does not bring the investment decision to an end. It simply changes the nature of it. For years, your capital has been tied up in bricks and mortar, producing rent and, hopefully, increasing in value. Then completion day arrives, the mortgage is repaid, any tax and selling costs are accounted for, and a substantial sum of money lands in your bank account. At that point, particularly if the sale forms part of a gradual move into retirement, another question becomes unavoidable: what are you going to do with the money now?
Buying another rental property would simply recreate the work and exposure you were trying to leave behind. Cash is useful for money that may be needed quickly, but holding substantial sale proceeds in bank accounts indefinitely is unlikely to produce the retirement income most landlords are looking for, while Cash ISAs can shelter only a relatively small amount each year. The stock market is an obvious alternative, but it has never particularly appealed to me. I am more comfortable investing where I can understand the underlying business, identify what produces the return and make my own assessment of the assets and risks supporting it. After decades in the property sector, residential mortgage lending is an area where I believe I can do that.
I therefore decided to approach property from the other side of the transaction. Instead of buying another building, arranging finance, finding tenants and taking responsibility for everything that follows, I invested part of my capital into a 30-month company loan note paying a fixed annual coupon of 10%, with the interest paid quarterly. I have deliberately left out the name of both the mortgage lender and the specialist intermediary through whom introductions are handled. My purpose here is to explain why I invested and the due diligence that gave me confidence to proceed, rather than to publish enough information for readers to bypass the introduction process and approach the parties directly.
The 10% coupon naturally caught my attention. There would be little point pretending otherwise. A fixed return of that size, paid every three months, has obvious attractions for somebody who is used to rental properties producing a regular income, and the defined 30-month term was short enough to fit comfortably within my wider plans for the capital. Nevertheless, a high coupon is not a substitute for due diligence. If a company is prepared to pay substantially more than a bank deposit, the investor needs to understand why it requires the money, how it intends to use it, whether the underlying activity is sufficiently profitable to support that cost of funding, and where the capital required for repayment will come from at the end of the term.
What interested me was the business sitting behind the loan note. The company provides specialist mortgages to older homeowners, including Retirement Interest Only mortgages, generally known as RIO mortgages, and lifetime mortgages. It is lending against residential property, earning income from a diversified mortgage book and serving borrowers who are often poorly catered for by mainstream banks. I was not being asked to understand an unproven technology, a speculative development or a business dependent upon the success of one product. I was looking at a mortgage lender operating in a part of the residential property market that made commercial sense to me.
Many older homeowners are asset-rich but cash-poor. They may own a valuable home but have a relatively modest pension income, or they may be approaching the end of an interest-only mortgage without wanting to sell and move. Others want to release capital to improve their home, help their children or enjoy a more comfortable retirement. Mainstream mortgage underwriting does not always accommodate these circumstances well, particularly where the borrower’s age or retirement income sits outside conventional lending criteria. Specialist later-life lenders therefore serve a genuine need, and that need is unlikely to disappear as the population ages and more wealth remains tied up in owner-occupied housing.
A RIO mortgage operates in a broadly familiar way. The borrower pays the interest each month, while the capital is normally repaid when the property is sold, the borrower dies or moves permanently into long-term care. The lender must therefore consider whether the payments are affordable, not only at the outset but over the longer term, including what might happen if one borrower dies before the other. A lifetime mortgage works differently because the borrower does not usually have to make monthly payments. Interest can be added to the balance and compounded until the property is eventually sold, usually after the last borrower dies or moves into care.
These two products create different risks for the lender. With a RIO mortgage, affordability and the borrower’s ability to maintain the interest payments are central. With a lifetime mortgage, the lender must pay particular attention to the initial loan-to-value, the rate at which interest accumulates, how long the loan may remain outstanding and what the property might ultimately be worth. The no-negative-equity guarantee commonly associated with lifetime mortgages protects the borrower and their estate from owing more than the property sells for, but it also means that the lender bears the risk of any eventual shortfall. Conservative starting loan-to-value ratios, sensible underwriting and diversification are therefore fundamental to the model.
This was where the opportunity began to feel familiar. I have spent much of my working life assessing residential property values, leverage, cashflow and the risks attached to secured lending. The mortgage information I reviewed showed average lending levels that I regarded as prudent compared with the value of the underlying homes, creating a substantial equity margin before ordinary movements in house prices would threaten the mortgage capital. I also looked at the spread of the mortgage book, the number and geographical distribution of borrowers and the available arrears and performance data. Rather than placing my money behind one property in one location, I was gaining indirect exposure to a much larger portfolio of residential mortgages.
That diversification was particularly attractive when compared with buying another rental property. A landlord owning one or two properties can be badly affected by a problem with a single tenant or building. A long void, a difficult possession case, a roof replacement or a serious repair can absorb most of the profit for the year, and the regulatory risk is concentrated in the same small number of properties. A large mortgage book will inevitably contain some loans that underperform, but each one represents a far smaller proportion of the whole. The business does not require every borrower or every property to perform perfectly in order to remain viable.
This is why, in my opinion, the underlying risk model is comparable in several important respects to buy-to-let, although the legal position and the return profile are clearly different. When a landlord buys a mortgaged rental property, the bank normally holds the first legal charge while the landlord owns the equity and absorbs the first loss if the property falls in value. The landlord receives the net rental income and keeps any future capital growth, but also takes responsibility for tenants, repairs, letting agents, insurance, compliance, voids and the growing volume of regulation.
By investing in the loan note, I moved to a different position within the same broad residential property economy. I became a creditor of a business that originates and manages mortgages across a diversified portfolio of owner-occupied homes. My return is fixed rather than dependent upon rent and future capital growth, and I do not control the underlying properties, but I also do not have to manage tenants, buildings or regulatory compliance. I gave up the unlimited upside associated with owning the equity in another property, but I also removed almost all of the operational work that comes with it.
The quality of the mortgage book was only one part of the due diligence. A company can own good assets and still encounter difficulties if its funding is poorly structured or if short-term liabilities become disconnected from long-term mortgage assets. Mortgage lenders typically finance themselves through a mixture of shareholder capital, bank facilities, institutional warehouse funding, securitisations and other borrowing, and the rights of those funders can vary considerably. I therefore wanted to understand not only how the mortgages were originated, but how the wider business funded them and how it had demonstrated continued access to institutional capital.
The company’s ability to obtain professional funding and refinance mortgage portfolios through institutional markets gave me additional comfort. Banks, institutional investors and rating agencies carry out detailed analysis of mortgage assets, underwriting standards, cashflows, legal structures and expected losses before committing their own money. Their involvement did not guarantee my investment, nor did it mean that my loan note ranked alongside senior institutional funding, but it was relevant evidence that sophisticated third parties had scrutinised the underlying business and were prepared to support it.
Creditor ranking was especially important because it is easy to misunderstand what is meant when an investment is described as being connected to first-charge mortgages. The homeowners may have granted first legal charges over their properties, but that does not necessarily mean that the loan-note investor holds those charges directly. Mortgage assets may sit within separate companies, institutional funding facilities or securitisation structures, and banks or warehouse lenders may have priority over particular assets. I therefore needed to understand which legal entity owed me the money, what security supported the loan note, whether any guarantees applied and which creditors might rank ahead of me if the business failed.
The other question that mattered was how my original capital would be returned after 30 months. The quarterly coupons were attractive, but receiving interest for two and a half years would be little consolation if the principal could not be repaid at maturity. I considered the company’s ability to generate cash from mortgage redemptions, refinance portfolios, secure replacement institutional funding and use the securitisation market. What I wanted to see was a coherent business with several credible funding routes, rather than one that appeared dependent upon a continuous supply of new private investors.
Having reviewed the mortgage book, underwriting approach, funding structure, legal documentation, management and expected route to repayment, I decided that the balance between risk and return justified committing part of my capital. I did not conclude that the investment was risk-free, because no corporate loan note can sensibly be viewed that way. I concluded that I understood the risks sufficiently well and considered the fixed 10% coupon appropriate compensation for accepting them.
The main sacrifice is liquidity. There is no readily available market on which I can sell the loan note tomorrow, so the money is committed for the 30-month term and should not be capital that may be needed for an unexpected tax bill, living costs, an emergency or another planned investment. I am also relying on the company continuing to originate and manage mortgages successfully, maintaining access to suitable funding and meeting its obligations to creditors. House prices could fall, mortgage arrears could rise, lifetime mortgage balances could grow faster than expected and institutional funding could become more expensive or difficult to obtain. If the company failed, creditors with priority could be paid before loan-note investors.
These are meaningful risks, but they are risks I can understand in the context of residential property and mortgage lending. I would rather take a considered risk in a business model I have spent years learning about than take comfort from an investment merely because it is quoted on a stock exchange or held by a large number of other people. For 30 months, I have given up immediate access to the capital, direct control and any entitlement to the capital growth of the underlying properties. In return, I receive a fixed annual coupon of 10%, paid quarterly, without any involvement in the day-to-day management of the mortgage book.
My own tax position is unusual because I am resident in Portugal and benefit from NHR status, so I invested personally. A UK-resident landlord may reach a different conclusion about the most appropriate ownership structure. Some may take advice about lending their personal property sale proceeds to their own company, allowing the company to make the investment, pay Corporation Tax on the coupon income and use the resulting cashflow to repay the director’s loan account.
That arrangement does not turn the investment profit into tax-free personal income. The company is repaying capital that the shareholder previously lent to it, while the corresponding post-tax investment profit remains within the company. It can nevertheless be commercially useful where somebody wants to recover their original capital gradually while building retained value inside a company for future investment, retirement income or succession planning. The right structure will depend upon the individual’s residence, tax position, income requirements and existing company arrangements, so it should be considered with an appropriate tax adviser rather than copied from somebody else’s circumstances.
I remain a believer in residential property, but I no longer believe that owning more rental properties is automatically the best way to benefit from it. Direct ownership provides control and the possibility of future capital growth, but it also brings a level of work and regulatory exposure that many landlords are trying to reduce as they approach retirement. Selling property released capital from that environment, while the loan note allowed me to redeploy part of it into a mortgage-lending business whose economics I could understand.
Instead of owning the equity in another individual rental property, I became a creditor of a company with a diversified mortgage book. Instead of receiving rent after repairs, voids and management costs, I receive a fixed quarterly coupon. Instead of continuing to carry the operational responsibilities of a landlord, I transferred that work to a specialist mortgage business. I have not eliminated risk; I have exchanged one set of risks and responsibilities for another that, for this part of my capital, I find more attractive.
Other landlords selling properties will make different choices. Some will prioritise immediate access to their money, repay debt, contribute to pensions or invest through conventional portfolios. Others will simply want to spend more of the proceeds during retirement. My point is that the decision to sell should not be considered in isolation from the question of what happens to the capital afterwards. For landlords who understand residential property, can commit money for a fixed period and are comfortable accepting corporate credit risk, becoming a lender rather than buying another rental property may deserve serious consideration.
If you would like to be considered for a private introduction, please complete the sections below. Your answers help us understand whether this opportunity is likely to be appropriate for you before any investment-specific information is shared.
About you
Your proposed investment
Please briefly explain what you are trying to achieve, such as replacing rental income, investing property sale proceeds, reducing the work associated with being a landlord, generating retirement income or diversifying your existing investments.
Initial high-net-worth eligibility check
Your request
Type your full name to sign.
(function(){
var uid = “crm-form-f0002f38″;
var form = document.getElementById(uid + ‘-form’);
var wrap = document.getElementById(uid);
var msg = wrap.querySelector(‘.crm-message’);
var totalPages = 4;
var curPage = 0;
// ── Conditional logic ────────────────────────────────────────────────
var condMap = {“d273ffd6-7082-49d6-bf24-92160a151ae9″:{“rules”:[{“value”:”income”,”fieldId”:”78b7d483-87fc-4dbd-8315-241419d929fc”,”operator”:”is”}],”enabled”:true,”logicType”:”all”,”actionType”:”show”},”2427d562-0198-4721-8ba2-8f106ce7a9a3″:{“rules”:[{“value”:”assets”,”fieldId”:”78b7d483-87fc-4dbd-8315-241419d929fc”,”operator”:”is”}],”enabled”:true,”logicType”:”all”,”actionType”:”show”}};
function getFieldValue(fieldId) {
var els = form.querySelectorAll(‘[name=”‘ + fieldId + ‘”], [name=”‘ + fieldId + ‘[]”]’);
if (!els.length) return ”;
var first = els[0];
if (first.type === ‘checkbox’ || first.type === ‘radio’) {
var checked = [];
els.forEach(function(el){ if (el.checked) checked.push(el.value); });
return checked.join(‘,’);
}
return first.value;
}
function evalRule(rule) {
var val = getFieldValue(rule.fieldId);
var cmp = rule.value;
switch (rule.operator) {
case ‘is': return val === cmp;
case ‘isnot': return val !== cmp;
case ‘greaterthan': return parseFloat(val) > parseFloat(cmp);
case ‘lessthan': return parseFloat(val) < parseFloat(cmp);
case 'contains': return val.indexOf(cmp) !== -1;
case 'startswith': return val.indexOf(cmp) === 0;
case 'endswith': return val.slice(-cmp.length) === cmp;
default: return false; // fail closed — mirror the CRM shared matcher
}
}
function applyConditionals() {
Object.keys(condMap).forEach(function(fieldId) {
var cond = condMap[fieldId];
var rules = cond.rules || [];
var match = cond.logicType === 'any'
? rules.some(evalRule)
: rules.every(evalRule);
var show = cond.actionType === 'show' ? match : !match;
var wrapper = form.querySelector('[data-field-id="' + fieldId + '"]');
if (!wrapper) {
var el = form.querySelector('[name="' + fieldId + '"], [name="' + fieldId + '[]"]');
if (el) wrapper = el.closest('.crm-field, .crm-half');
}
if (wrapper) wrapper.style.display = show ? '' : 'none';
});
}
form.addEventListener('change', applyConditionals);
form.addEventListener('input', applyConditionals);
applyConditionals();
// ── Required-field validation (Next + Submit) ────────────────────────
// Validate from the form's field config (id + type), NOT the [required]
// HTML attribute: a checkbox group can't carry a meaningful `required`
// (native means "tick every box"), so attribute checks skip it — which is
// why empty checkbox questions slipped past Next straight to submit.
var crmRequired = [{"id":"7fb71239-ebea-40ab-a958-47e6703d12a0","type":"text","label":"Full name"},{"id":"1517445e-7a4d-413f-9730-e25dc69aa89e","type":"email","label":"Email address"},{"id":"cc3709b6-7cc1-4049-82d2-ace032160dee","type":"phone","label":"Telephone number"},{"id":"67cbd35c-ba3e-4949-8243-e4c9798ca37e","type":"text","label":"Country of residence"},{"id":"9d3af0b8-7cad-4f26-b848-ec43893d99ea","type":"text","label":"Country of tax residence"},{"id":"4a3e202f-0865-4770-972d-cd0943ced15c","type":"number","label":"Approximately how much are you considering investing?"},{"id":"2d82383f-43de-4591-b88a-5c9907e1f9f8","type":"radio","label":"Where would the capital come from?"},{"id":"719e8f3d-2f7a-4dd4-ada5-dab807e744d5","type":"radio","label":"Is the capital currently available?"},{"id":"2e3ca196-0542-42cb-bea9-a25dcc774e4f","type":"radio","label":"When are you likely to be ready?"},{"id":"ea546079-e074-4cd4-9dde-033f150290b5","type":"textarea","label":"Why does this type of investment interest you?"},{"id":"02ae4b4e-1d25-461d-aab5-738f72abded0","type":"radio","label":"Would you expect to need access to this capital during a 30-month term?"},{"id":"78b7d483-87fc-4dbd-8315-241419d929fc","type":"checkbox","label":"Which of these applied during your previous financial year?"},{"id":"d273ffd6-7082-49d6-bf24-92160a151ae9","type":"number","label":"Approximate annual income"},{"id":"2427d562-0198-4721-8ba2-8f106ce7a9a3","type":"number","label":"Approximate qualifying net assets"},{"id":"a92580da-aa9e-4cd3-b7ae-e6f9ccbc00b2","type":"consent","label":"I understand that this is a fixed-term, high-risk investment and that I could lose some or all of the money invested."},{"id":"57653b06-32d5-4466-a56a-6471495d9464","type":"consent","label":"I understand that Property118 does not provide regulated investment advice and has not assessed whether the investment is suitable for me."},{"id":"d6d5ad3c-7f30-40f8-af92-58d7c3073ecc","type":"consent","label":"I confirm that the financial information provided above is accurate to the best of my knowledge."},{"id":"92b7aab7-4be8-4416-85f5-acbd85a4ddb3","type":"consent","label":"I understand that Property118 may receive a commercial introduction fee if I subsequently invest."},{"id":"62987f70-8085-42ab-a9fb-beb0a1404660","type":"consent","label":"I have read and agree to the Property118 privacy notice."},{"id":"6155de58-ad36-40aa-bcb7-a36b01e0e3d1","type":"text","label":"Electronic signature"}];
function crmWrapper(id) {
var w = form.querySelector('[data-field-id="' + id + '"]');
if (!w) { var el = form.querySelector('[name="' + id + '"], [name="' + id + '[]"]'); if (el) w = el.closest('.crm-field, .crm-half'); }
return w;
}
function crmFilled(fld) {
var els = form.querySelectorAll('[name="' + fld.id + '"], [name="' + fld.id + '[]"]');
if (!els.length) return true;
if (['checkbox','radio','product','consent'].indexOf(fld.type) !== -1) { return Array.prototype.some.call(els, function(el){ return el.checked; }); }
return (els[0].value || '').trim() !== '';
}
function crmFirstInvalid(pageIdx) {
for (var i = 0; i < crmRequired.length; i++) {
var fld = crmRequired[i]; var w = crmWrapper(fld.id);
if (!w) continue;
if (w.style.display === 'none') continue;
if (pageIdx != null) { var pd = w.closest('[data-page]'); if (!pd || parseInt(pd.getAttribute('data-page')) !== pageIdx) continue; }
if (!crmFilled(fld)) return fld;
}
return null;
}
// Shows the error in a red box UNDER the field, matching the form's own
// .crm-message error styling, and scrolls to it.
function crmMarkError(w, text) {
if (!w) return;
var e = w.querySelector('.crm-inline-error');
if (!e) { e = document.createElement('div'); e.className = 'crm-inline-error'; w.appendChild(e); }
e.style.cssText = 'background:#fee2e2;color:#991b1b;padding:.55rem .75rem;border-radius:4px;margin-top:.4rem;font-size:.9rem';
e.textContent = text || 'Please answer this before continuing.';
}
function crmClearError(w) { if (!w) return; var e = w.querySelector('.crm-inline-error'); if (e) e.parentNode.removeChild(e); }
function crmReportInvalid(fld) {
var w = crmWrapper(fld.id);
var t = (['checkbox','product'].indexOf(fld.type) !== -1) ? 'Please select at least one option.' : (fld.type === 'radio' ? 'Please choose an option.' : 'Please fill this in.');
crmMarkError(w, t);
if (w && w.scrollIntoView) w.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
form.addEventListener('change', function(e){ var w = e.target && e.target.closest ? e.target.closest('.crm-field, .crm-half, [data-field-id]') : null; if (w) crmClearError(w); });
form.addEventListener('input', function(e){ var w = e.target && e.target.closest ? e.target.closest('.crm-field, .crm-half, [data-field-id]') : null; if (w) crmClearError(w); });
// ── Multi-page navigation ────────────────────────────────────────────
function showPage(n) {
curPage = n; if (msg) msg.style.display = 'none';
form.querySelectorAll('.crm-page').forEach(function(p){ p.style.display = 'none'; });
form.querySelector('[data-page="' + n + '"]').style.display = '';
if (wrap && wrap.scrollIntoView) wrap.scrollIntoView({ behavior: 'smooth', block: 'start' });
var prog = wrap.querySelector('.crm-progress-fill');
if (prog) prog.style.width = (Math.round(100 * (n + 1) / totalPages)) + '%';
var stepNum = wrap.querySelector('.crm-step-num');
if (stepNum) stepNum.textContent = n + 1;
}
form.querySelectorAll('.crm-next-btn').forEach(function(btn){
btn.addEventListener('click', function(){
var page = parseInt(btn.dataset.page);
// Validate the current page's required fields (config-based, so
// checkbox groups are caught too) before advancing.
var badW = crmFirstInvalid(page);
if (badW) { crmReportInvalid(badW); return; }
showPage(page + 1);
});
});
form.querySelectorAll('.crm-prev-btn').forEach(function(btn){
btn.addEventListener('click', function(){
showPage(parseInt(btn.dataset.page) – 1);
});
});
// ── Submit ────────────────────────────────────────────────────────────
var submitBtn = form.querySelector('button[type=submit]');
var btnText = submitBtn ? submitBtn.textContent : 'Submit';
var crmApiUrl = "https://crm-api.property118.com";
function collectFormData() {
var data = {};
for (var j = 0; j < form.elements.length; j++) {
var el = form.elements[j];
if (!el.name) continue;
if (el.type === 'file') continue; // handled by uploadFiles()
if (el.type === 'radio' && !el.checked) continue;
if (el.type === 'checkbox') {
if (!el.checked) continue;
var k = el.name.replace('[]','');
data[k] = data[k] ? data[k].concat([el.value]) : [el.value];
} else {
data[el.name] = el.value;
}
}
// Repeater fields: sub-inputs are named "[][]”.
// Group those flat keys into an array of row objects under the repeater
// id. Plain fields, checkbox “[]” arrays and single-bracket composites
// (name[first], address[city]) don’t match the double-bracket pattern, so
// ordinary submissions are unchanged.
var _repRe = /^(.+?)[(d+)][(.+)]$/;
var _repIds = {};
Object.keys( data ).forEach( function ( key ) {
var m = key.match( _repRe );
if ( ! m ) { return; }
var rid = m[1], row = parseInt( m[2], 10 ), sub = m[3];
_repIds[ rid ] = true;
if ( ! Array.isArray( data[ rid ] ) ) { data[ rid ] = []; }
if ( ! data[ rid ][ row ] || typeof data[ rid ][ row ] !== ‘object’ ) { data[ rid ][ row ] = {}; }
data[ rid ][ row ][ sub ] = data[ key ];
delete data[ key ];
} );
Object.keys( _repIds ).forEach( function ( rid ) {
if ( Array.isArray( data[ rid ] ) ) {
data[ rid ] = data[ rid ].filter( function ( r ) { return r && typeof r === ‘object'; } );
}
} );
// GF auto-substituted {user_agent} / {referer} on hidden fields
// at render time. We do the equivalent right before submit so
// fields whose default value carries these placeholders
// resolve to the browser’s actual values rather than being
// stored as literal “{user_agent}” / “{referer}” strings.
// The last ARTICLE the visitor read (set client-side on post views by
// P118_Article_Views). Used to attribute the enquiry to the article
// even after navigating away or with a stripped/absent referer.
var lastPost = ”;
try {
var lpm = document.cookie.match(/(?:^|;s*)p118_last_post=([^;]+)/);
if (lpm) lastPost = decodeURIComponent(lpm[1]);
} catch (e) {}
var subs = {
‘{user_agent}': navigator.userAgent || ”,
// Prefer the last article read; fall back to the (lossy) HTTP referer.
‘{referer}': lastPost || document.referrer || ”,
‘{last_post}': lastPost || ”,
‘{embed_url}': window.location.href || ”,
};
for (var name in data) {
if (!data.hasOwnProperty(name)) continue;
var v = data[name];
if (typeof v !== ‘string’) continue;
for (var tag in subs) {
if (v.indexOf(tag) !== -1) v = v.split(tag).join(subs[tag]);
}
data[name] = v;
}
// Agent/BDM attribution — read LIVE so it works even on a fully cached
// page (the browser always sees the real URL + cookie). URL ?ataid=/?cid=
// first, then the 30-day agent_id/cid cookies set by atat-tracking.php.
var _qp = new URLSearchParams(window.location.search);
var _ataid = _qp.get(‘ataid’) || (document.cookie.match(/(?:^|;s*)agent_id=([^;]+)/) || [])[1] || ”;
var _cid = _qp.get(‘cid’) || (document.cookie.match(/(?:^|;s*)cid=([^;]+)/) || [])[1] || ”;
if (_ataid) data.agent_id = decodeURIComponent(_ataid);
if (_cid) data.bdm_id = decodeURIComponent(_cid);
return data;
}
function uploadFiles(data) {
var fileInputs = form.querySelectorAll(‘input[type=file][data-crm-file-field]’);
var uploads = [];
fileInputs.forEach(function(el) {
if (!el.files || !el.files[0]) return;
var fd = new FormData();
fd.append(‘file’, el.files[0]);
var fieldName = el.name;
uploads.push(
fetch(crmApiUrl + ‘/public/forms/’ + “8faf069c-83f2-40f6-9218-9c8949fb14f8″ + ‘/upload’, { method: ‘POST’, body: fd })
.then(function(r) {
if (!r.ok) throw new Error(‘File upload failed (‘ + r.status + ‘)’);
return r.json();
})
.then(function(res) {
if (res.path) data[fieldName] = res.path;
else throw new Error(res.error || ‘File upload failed’);
})
);
});
return Promise.all(uploads).then(function() { return data; });
}
function submitFormData(data) {
var body = new FormData();
body.append(‘action’, ‘p118_crm_submit’);
body.append(‘form_id’, “8faf069c-83f2-40f6-9218-9c8949fb14f8″);
body.append(‘data’, JSON.stringify(data));
// Embed-page context for GF-style merge tags ({embed_url},
// {embed_post:post_title}, {embed_post:ID}). Captured PHP-side
// at render time, then echoed to JS so the submit fetch can
// forward to V2 as request headers.
body.append(‘embed_url’, “”);
body.append(‘embed_post_id’, “0”);
body.append(‘embed_post_title’, “”);
return fetch(“https://www.property118.com/wp-admin/admin-ajax.php”, { method: ‘POST’, body: body, credentials: ‘same-origin’ })
.then(function(r){ return r.json(); })
.then(function(res){
var p = res.data || res;
if (p && p.success) {
if (p.confirmationType === ‘form’ && p.nextFormId) {
return swapInNextForm(p.nextFormId, p.prefill || {});
}
if (p.confirmationType === ‘redirect’ && p.confirmationRedirectUrl) {
window.location.href = p.confirmationRedirectUrl;
} else {
form.style.display = ‘none';
msg.className = ‘crm-message success';
msg.innerHTML = p.confirmationMessage || ‘Thank you for your submission.';
// Carry the calculator’s own results across. A calculator form
// renders its figures into [data-iht-results] as the visitor
// types; hiding the form hid those too, so the completion
// screen went blank and the visitor lost what they had just
// worked out. Nothing happens on forms without that element.
var resultsEl = form.querySelector(‘[data-iht-results]’);
if (resultsEl && resultsEl.innerHTML.trim()) {
var carried = document.createElement(‘div’);
carried.className = ‘crm-message-results';
carried.innerHTML = resultsEl.innerHTML;
msg.appendChild(carried);
}
// Download link for a generated report, present only when the
// API filed the PDF before responding. Built through the DOM
// rather than concatenated into innerHTML so the URL cannot
// inject markup.
if (p.reportDownloadUrl) {
var dlWrap = document.createElement(‘p’);
dlWrap.className = ‘crm-report-download';
var dl = document.createElement(‘a’);
dl.className = ‘crm-report-button';
dl.href = p.reportDownloadUrl;
dl.target = ‘_blank';
dl.rel = ‘noopener noreferrer';
dl.textContent = ‘Download your report (PDF)';
dlWrap.appendChild(dl);
msg.appendChild(dlWrap);
}
msg.style.display = ‘block';
if (msg.scrollIntoView) {
msg.scrollIntoView({ behavior: ‘smooth’, block: ‘start’ });
}
}
} else {
throw new Error((p && p.error) || ‘Submission failed.’);
}
});
}
// Replace this whole form widget with another form, rendered server-side
// with the carried-over values seeded in. Inline injected via
// innerHTML won’t run, so we re-create each script node to execute it
// (this is what wires up the new form’s submit / conditional logic).
function swapInNextForm(nextFormId, prefill) {
var rbody = new FormData();
rbody.append(‘action’, ‘p118_crm_render_form’);
rbody.append(‘form_id’, nextFormId);
rbody.append(‘prefill’, JSON.stringify(prefill || {}));
return fetch(“https://www.property118.com/wp-admin/admin-ajax.php”, { method: ‘POST’, body: rbody, credentials: ‘same-origin’ })
.then(function(r){ return r.json(); })
.then(function(res2){
var pd = res2.data || res2;
if (!pd || !pd.html) { throw new Error((pd && pd.error) || ‘Could not load the next form.’); }
var frag = document.createElement(‘div’);
frag.innerHTML = pd.html;
var parent = wrap.parentNode;
var nodes = [];
while (frag.firstChild) {
var node = frag.firstChild;
parent.insertBefore(node, wrap);
nodes.push(node);
}
parent.removeChild(wrap);
function reexec(old) {
var s = document.createElement(‘script’);
for (var a = 0; a < old.attributes.length; a++) {
s.setAttribute(old.attributes[a].name, old.attributes[a].value);
}
if (!old.src) { s.textContent = old.textContent; }
old.parentNode.replaceChild(s, old);
}
nodes.forEach(function(n){
if (n.tagName === 'SCRIPT') { reexec(n); }
else if (n.querySelectorAll) {
var scripts = n.querySelectorAll('script');
for (var k = 0; k < scripts.length; k++) { reexec(scripts[k]); }
}
});
var first = nodes[0];
try { if (first && first.scrollIntoView) first.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (e) {}
});
}
form.addEventListener('submit', function(e){
e.preventDefault();
// Validate required fields before submitting. Next only guards the pages
// before it, so the final page (and single-page forms) are checked here;
// jump to the first page that has a problem.
for (var vp = 0; vp < totalPages; vp++) {
var vbad = crmFirstInvalid(vp);
if (vbad) { showPage(vp); crmReportInvalid(vbad); return; }
}
var data = collectFormData();
if (submitBtn) { submitBtn.disabled = true; submitBtn.textContent = 'Processing…'; }
msg.style.display = 'none';
// Standard form (no payment)
uploadFiles(data)
.then(function(d) { return submitFormData(d); })
.catch(function(err){
if (submitBtn) { submitBtn.disabled = false; submitBtn.textContent = btnText; }
msg.className = 'crm-message error';
msg.textContent = err.message;
msg.style.display = 'block';
});
});
// ── Repeater fields (add / remove rows) ──────────────────────────
form.querySelectorAll( '.crm-repeater' ).forEach( function ( rep ) {
var rowsWrap = rep.querySelector( '.crm-repeater-rows' );
var tpl = rep.querySelector( '.crm-repeater-template' );
var addBtn = rep.querySelector( '.crm-repeater-add' );
if ( addBtn && tpl && rowsWrap ) {
addBtn.addEventListener( 'click', function () {
var idx = parseInt( rep.getAttribute( 'data-next-index' ) || '1', 10 );
var tmp = document.createElement( 'div' );
tmp.innerHTML = tpl.innerHTML.split( '__ROW__' ).join( idx );
var row = tmp.firstElementChild;
if ( ! row ) { return; }
row.setAttribute( 'data-row', idx );
rowsWrap.appendChild( row );
rep.setAttribute( 'data-next-index', idx + 1 );
rep.dispatchEvent( new CustomEvent( 'crm-repeater-change', { bubbles: true } ) );
} );
}
if ( rowsWrap ) {
rowsWrap.addEventListener( 'click', function ( e ) {
var btn = e.target.closest ? e.target.closest( '.crm-repeater-remove' ) : null;
if ( ! btn ) { return; }
if ( rowsWrap.querySelectorAll( '.crm-repeater-row' ).length <= 1 ) { return; }
var r = btn.closest( '.crm-repeater-row' );
if ( r ) { r.remove(); }
rep.dispatchEvent( new CustomEvent( 'crm-repeater-change', { bubbles: true } ) );
} );
}
} );
})();
/* ── Property118 branded form ─────────────────────────────────────────────── */
.p118-crm-form{
–blue:#0b5fa5;–blue-dark:#073f70;–blue-soft:#eaf4fc;–ink:#17212b;–muted:#5c6875;
–line:#d9e1e8;–panel:#f7f9fb;–red:#a82d2d;–pad:32px;
max-width:920px;margin:24px auto;font-family:Arial,Helvetica,sans-serif;color:var(–ink);line-height:1.55;
padding:var(–pad);border:1px solid var(–line);border-radius:16px;background:#fff;
box-shadow:0 16px 45px rgba(13,44,72,.10);overflow:hidden;
}
.p118-crm-form *{box-sizing:border-box}
/* fields — single column always, never two-up */
.p118-crm-form .crm-field,.p118-crm-form .crm-half{margin-bottom:16px}
.p118-crm-form .crm-half{display:block;width:100%;margin-right:0}
.p118-crm-form label{display:block;font-weight:700;color:var(–ink);margin-bottom:7px}
.p118-crm-form .crm-required{color:var(–red);margin-left:2px}
.p118-crm-form .crm-desc,.p118-crm-form .crm-field-description{display:block;margin:-3px 0 8px;color:var(–muted);font-size:13px;font-weight:400}
.p118-crm-form input[type=”number”],.p118-crm-form input[type=”text”],.p118-crm-form input[type=”email”],
.p118-crm-form input[type=”tel”],.p118-crm-form input[type=”url”],.p118-crm-form input[type=”date”],
.p118-crm-form select,.p118-crm-form textarea{
width:100%;min-height:48px;border:1px solid #b9c5cf;border-radius:10px;padding:11px 13px;
background:#fff;font-size:16px;color:var(–ink);font-family:inherit;
}
.p118-crm-form textarea{min-height:120px;resize:vertical}
.p118-crm-form input:focus,.p118-crm-form select:focus,.p118-crm-form textarea:focus{outline:0;border-color:var(–blue);box-shadow:0 0 0 3px rgba(11,95,165,.15)}
.p118-crm-form input[aria-invalid=”true”],.p118-crm-form select[aria-invalid=”true”]{border-color:var(–red);box-shadow:0 0 0 3px rgba(168,45,45,.12)}
/* currency fields */
.p118-crm-form .crm-amount-wrap{display:flex;align-items:center;gap:.5rem}
.p118-crm-form .crm-amount-currency{font-size:1.15rem;font-weight:700;color:var(–ink)}
.p118-crm-form .crm-amount-wrap input{flex:1}
/* section headings = the step titles */
.p118-crm-form .crm-section,.p118-crm-form h2,.p118-crm-form h3{color:var(–blue-dark);font-size:clamp(22px,3vw,30px);line-height:1.2;margin:8px 0 6px;padding-top:14px}
.p118-crm-form .crm-section hr{display:none}
.p118-crm-form .crm-section+.crm-desc,.p118-crm-form .crm-section-description{max-width:720px;color:var(–muted);margin-bottom:18px}
/* radio / checkbox options as selectable tiles */
.p118-crm-form .crm-choices{display:grid;gap:9px}
.p118-crm-form .crm-choices label{display:flex;align-items:flex-start;gap:10px;min-height:48px;border:1px solid #c7d1da;border-radius:10px;background:#fff;padding:12px 13px;margin:0;font-weight:400;cursor:pointer}
.p118-crm-form .crm-choices label:has(input:checked){border-color:var(–blue);background:var(–blue-soft);box-shadow:inset 0 0 0 1px var(–blue)}
.p118-crm-form .crm-choices input{width:18px;height:18px;min-height:0;margin:2px 0 0;flex:0 0 auto;accent-color:var(–blue)}
/* consent checkboxes */
.p118-crm-form .crm-consent-label{display:flex;gap:10px;align-items:flex-start;font-weight:400;line-height:1.5}
.p118-crm-form .crm-consent-label input{width:19px;height:19px;min-height:0;margin-top:2px;flex:0 0 auto;accent-color:var(–blue)}
/* buttons + nav */
.p118-crm-form .crm-nav,.p118-crm-form .crm-actions,.p118-crm-form .crm-page-nav{display:flex;justify-content:space-between;gap:12px;margin-top:26px}
.p118-crm-form .crm-submit{margin-top:26px}
.p118-crm-form button{appearance:none;min-height:48px;border:0;border-radius:10px;padding:12px 20px;font-weight:700;font-size:16px;cursor:pointer;font-family:inherit}
.p118-crm-form button[type=”submit”],.p118-crm-form .crm-next-btn,.p118-crm-form [data-next]{background:var(–blue);color:#fff;box-shadow:0 8px 20px rgba(11,95,165,.2)}
.p118-crm-form button[type=”submit”]:hover,.p118-crm-form .crm-next-btn:hover,.p118-crm-form [data-next]:hover{background:var(–blue-dark)}
.p118-crm-form .crm-prev-btn,.p118-crm-form [data-back]{background:#fff;border:1px solid #bec9d2;color:var(–blue-dark)}
.p118-crm-form button:disabled{opacity:.5;cursor:not-allowed}
.p118-crm-form .crm-page-error{color:var(–red);font-weight:700;margin-top:12px}
/* file input */
.p118-crm-form .crm-file-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;width:100%;padding:12px 13px;background:#fff;border:2px dashed #c7d1da;border-radius:10px}
.p118-crm-form .crm-file-label:hover{border-color:var(–blue)}
.p118-crm-form .crm-file-btn{flex-shrink:0;background:var(–blue);color:#fff;border-radius:8px;padding:.35rem .8rem;font-size:.85rem;font-weight:700;white-space:nowrap}
.p118-crm-form .crm-file-name{font-size:.9rem;color:var(–muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* confirmation / error message */
.p118-crm-form .crm-message{padding:16px 18px;border-radius:12px;margin-top:16px;font-size:15px}
.p118-crm-form .crm-message.success{background:var(–blue-soft);border:1px solid #bbd6eb;color:var(–blue-dark)}
.p118-crm-form .crm-message.error{background:#fdecec;border:1px solid #f0c2c2;color:var(–red)}
/* the native progress bar is replaced by the segmented rail below */
.p118-crm-form .crm-progress,.p118-crm-form .crm-progress-meta{display:none}
/* branded header + step rail (both injected by the preset JS) */
.p118-header{margin:calc(var(–pad) * -1) calc(var(–pad) * -1) 0;padding:30px var(–pad) 26px;background:linear-gradient(135deg,var(–blue-dark),var(–blue));color:#fff}
.p118-header .p118-eyebrow{margin:0 0 7px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.88}
.p118-header h1{margin:0;max-width:700px;font-size:clamp(24px,4.2vw,40px);line-height:1.12;letter-spacing:-.02em;color:#fff}
.p118-header .p118-header-copy{max-width:740px;margin:14px 0 0;color:rgba(255,255,255,.92);font-size:16px}
.p118-steps{margin:0 calc(var(–pad) * -1) 22px;padding:16px var(–pad);border-bottom:1px solid var(–line);background:#fff}
.p118-steps-bar{height:9px;border-radius:999px;background:#e5ebf0;overflow:hidden}
.p118-steps-fill{height:100%;background:var(–blue);border-radius:inherit;transition:width .25s ease}
.p118-steps-labels{display:grid;gap:6px;margin-top:8px;font-size:11px;text-align:center;color:#73808d}
.p118-step-label.is-current{color:var(–blue-dark);font-weight:700}
.p118-step-label.is-done{color:var(–blue)}
@media(max-width:720px){
.p118-crm-form{–pad:20px;border-radius:12px}
.p118-steps-labels{display:none}
}
var P118_FORM={“title”:”Request a private introduction”,”description”:”If you would like to be considered for a private introduction, please complete the sections below. Your answers help us understand whether this opportunity is likely to be appropriate for you before any investment-specific information is shared.”};
;
(function () {
var wrap = document.querySelector(‘.p118-crm-form’);
if (!wrap || wrap.querySelector(‘.p118-header’) || wrap.querySelector(‘.p118-steps’)) return;
// Title/description come from the P118_FORM prelude the resolver emits. The
// CRM’s preview renderer draws no .crm-form-title element at all, and the WP
// shortcode only draws one when the embed passes title=”true” — so scraping
// the DOM for them left the header blank on most forms.
var meta = (typeof P118_FORM !== ‘undefined’ && P118_FORM) || {};
var pages = [].slice.call(wrap.querySelectorAll(‘.crm-page’));
var labels = pages.map(function (p, i) {
var h = p.querySelector(‘.crm-section h2, .crm-section h3, .crm-section’);
var t = h ? (h.textContent || ”).trim() : ”;
return t || ‘Step ‘ + (i + 1);
});
var titleEl = wrap.querySelector(‘.crm-form-title’);
var descEl = wrap.querySelector(‘.crm-form-description’);
var title = (meta.title || (titleEl && titleEl.textContent) || ”).trim();
var copy = (meta.description || (descEl && descEl.textContent) || ”).trim();
if (title) {
var header = document.createElement(‘header’);
header.className = ‘p118-header';
var h1 = document.createElement(‘h1′);
h1.textContent = title;
var eyebrow = document.createElement(‘p’);
eyebrow.className = ‘p118-eyebrow';
eyebrow.textContent = ‘Property118′;
header.appendChild(eyebrow);
header.appendChild(h1);
if (copy) {
var p = document.createElement(‘p’);
p.className = ‘p118-header-copy';
p.textContent = copy;
header.appendChild(p);
}
if (titleEl) titleEl.style.display = ‘none';
if (descEl) descEl.style.display = ‘none';
wrap.insertBefore(header, wrap.firstChild);
}
if (pages.length < 2) return; // single-page form: no rail to draw
var steps = document.createElement('div');
steps.className = 'p118-steps';
var bar = document.createElement('div');
bar.className = 'p118-steps-bar';
var fill = document.createElement('div');
fill.className = 'p118-steps-fill';
bar.appendChild(fill);
var row = document.createElement('div');
row.className = 'p118-steps-labels';
row.style.gridTemplateColumns = 'repeat(' + labels.length + ',1fr)';
labels.forEach(function (name) {
var s = document.createElement('span');
s.className = 'p118-step-label';
s.textContent = name;
row.appendChild(s);
});
steps.appendChild(bar);
steps.appendChild(row);
var anchor = wrap.querySelector('.p118-header');
wrap.insertBefore(steps, anchor ? anchor.nextSibling : wrap.firstChild);
var num = wrap.querySelector('.crm-step-num');
var spans = row.querySelectorAll('.p118-step-label');
function currentStep() {
if (num) { var n = parseInt(num.textContent || '1', 10); if (n) return n; }
for (var i = 0; i < pages.length; i++) {
var p = pages[i];
if (!p.hidden && p.style.display !== 'none') return i + 1;
}
return 1;
}
function update() {
var step = currentStep();
for (var i = 0; i < spans.length; i++) {
spans[i].classList.toggle('is-current', i === step – 1);
spans[i].classList.toggle('is-done', i < step – 1);
}
fill.style.width = Math.round((step / labels.length) * 100) + '%';
}
if (num && window.MutationObserver) {
new MutationObserver(update).observe(num, { childList: true, characterData: true, subtree: true });
}
wrap.addEventListener('click', function (e) {
if (e.target.closest && e.target.closest('.crm-next-btn, .crm-prev-btn, [data-next], [data-back]')) setTimeout(update, 0);
});
update();
})();
Important information
This article explains my personal reasons for investing. It is not independent financial advice or a recommendation based on your individual circumstances.
The 10% coupon and 30-month term relate to the investment I made. The terms of any opportunity available to another investor may differ.
Capital is at risk, returns are not guaranteed and the investment is not equivalent to a bank deposit. My investment was not protected by the Financial Services Compensation Scheme, and there may be no way to recover the capital before maturity.
The post From landlord to lender: why I invested at 10% instead of buying another rental property appeared first on Property118.
View Full Article: From landlord to lender: why I invested at 10% instead of buying another rental property
Government defends social housing landlords’ power to tackle anti-social behaviour
Property118

Government defends social housing landlords’ power to tackle anti-social behaviour
Social housing landlords already have strong powers to deal with anti-social behaviour, the government has claimed.
In a parliamentary written answer, Labour’s Baroness Taylor of Stevenage said the Crime and Policing Act had strengthened the powers available to police to deal with anti-social behaviour.
The news comes as a Labour MP suggested PRS landlords should take a greater role in tackling anti-social behaviour caused by tenants.
Wide range of tools to tackle anti-social behaviour
Baroness Taylor of Stevenage said: “Social housing landlords already have a wide range of tools to tackle anti-social behaviour, and the Regulator of Social Housing’s neighbour and community standard already requires registered providers to work with relevant partners to deter and tackle anti-social behaviour and hate incidents.
“Recent legislation has strengthened these powers even further. The Crime and Policing Act, which received Royal Assent in April, has strengthened the powers available to the police and other agencies, including stronger measures to deal with the most persistent offenders.
“The Renters’ Rights Act also shortened the notice period for the mandatory anti-social behaviour eviction ground and once implemented in the social rented sector, landlords will, in cases of anti-social behaviour, be able to make a claim to the court faster.”
Guidance for anti-social behaviour
As previously reported by Property118, under the Renters’ Rights Act, when using a discretionary ground for possession, PRS landlords will have to prove that anti-social behaviour has occurred, and the court will then decide whether it is reasonable to evict the tenant.
The government guidance provides examples of what counts as anti-social behaviour, covering both criminal and non-criminal behaviour, for example:
- causing a nuisance to neighbours
- noise
- verbal abuse, harassment and threats
- drug use or drug dealing
- vandalism
- graffiti
- fly-tipping and littering
- discarding syringes or needles
- issues with pets
However, the government guidance says minor issues such as problems with bins, parking disputes, or one-off incidents do not count as anti-social behaviour.
The government guidance also claims landlords can reduce the risk of anti-social behaviour by asking for a reference from a previous landlord or letting agency.
The post Government defends social housing landlords’ power to tackle anti-social behaviour appeared first on Property118.
View Full Article: Government defends social housing landlords’ power to tackle anti-social behaviour
Categories
- Landlords (19)
- Real Estate (9)
- Renewables & Green Issues (1)
- Rental Property Investment (1)
- Tenants (21)
- Uncategorized (12,940)
Archives
- September 2026 (23)
- August 2026 (61)
- July 2026 (63)
- June 2026 (70)
- May 2026 (70)
- April 2026 (78)
- March 2026 (72)
- February 2026 (55)
- January 2026 (52)
- December 2025 (62)
- August 2025 (51)
- July 2025 (51)
- June 2025 (49)
- May 2025 (50)
- April 2025 (48)
- March 2025 (54)
- February 2025 (51)
- January 2025 (52)
- December 2024 (55)
- November 2024 (64)
- October 2024 (82)
- September 2024 (69)
- August 2024 (55)
- July 2024 (64)
- June 2024 (54)
- May 2024 (73)
- April 2024 (59)
- March 2024 (49)
- February 2024 (57)
- January 2024 (58)
- December 2023 (56)
- November 2023 (59)
- October 2023 (67)
- September 2023 (136)
- August 2023 (131)
- July 2023 (129)
- June 2023 (128)
- May 2023 (140)
- April 2023 (121)
- March 2023 (168)
- February 2023 (155)
- January 2023 (152)
- December 2022 (136)
- November 2022 (158)
- October 2022 (146)
- September 2022 (148)
- August 2022 (169)
- July 2022 (124)
- June 2022 (124)
- May 2022 (130)
- April 2022 (116)
- March 2022 (155)
- February 2022 (124)
- January 2022 (120)
- December 2021 (117)
- November 2021 (139)
- October 2021 (130)
- September 2021 (138)
- August 2021 (110)
- July 2021 (110)
- June 2021 (60)
- May 2021 (127)
- April 2021 (122)
- March 2021 (156)
- February 2021 (154)
- January 2021 (133)
- December 2020 (126)
- November 2020 (159)
- October 2020 (169)
- September 2020 (181)
- August 2020 (147)
- July 2020 (172)
- June 2020 (158)
- May 2020 (177)
- April 2020 (188)
- March 2020 (234)
- February 2020 (212)
- January 2020 (164)
- December 2019 (107)
- November 2019 (131)
- October 2019 (145)
- September 2019 (123)
- August 2019 (112)
- July 2019 (93)
- June 2019 (82)
- May 2019 (94)
- April 2019 (88)
- March 2019 (78)
- February 2019 (77)
- January 2019 (71)
- December 2018 (37)
- November 2018 (85)
- October 2018 (108)
- September 2018 (110)
- August 2018 (135)
- July 2018 (140)
- June 2018 (118)
- May 2018 (113)
- April 2018 (64)
- March 2018 (96)
- February 2018 (82)
- January 2018 (92)
- December 2017 (62)
- November 2017 (100)
- October 2017 (105)
- September 2017 (97)
- August 2017 (101)
- July 2017 (104)
- June 2017 (155)
- May 2017 (135)
- April 2017 (113)
- March 2017 (138)
- February 2017 (150)
- January 2017 (127)
- December 2016 (90)
- November 2016 (135)
- October 2016 (149)
- September 2016 (135)
- August 2016 (48)
- July 2016 (52)
- June 2016 (54)
- May 2016 (52)
- April 2016 (24)
- October 2014 (8)
- April 2012 (2)
- December 2011 (2)
- November 2011 (10)
- October 2011 (9)
- September 2011 (9)
- August 2011 (3)
Calendar
Recent Posts
- Could a new LLP tax judgment help landlords caught in HMRC’s Spotlight 63?
- Why the nonsense £65 landlord database tax is just the start
- One million landlords set to use tenant deposit alternatives
- Why September could be the month to rethink your property portfolio
- Rents look set to rise as tenant demand grows – RICS

admin