Contents
Imagine this: You’ve just obtained a sweet deal on a small apartment block.
A tidy little investment with multiple units all under your name.
But as the keys jingle in your hand, it hits you: it’s not strata-titled.
No body corporate, no shared management; just you and your property.
So, what now? How do you protect your investment?
If this sounds familiar, you’re in the right place.
Welcome to the world of non-strata unit blocks, single-owner properties with multiple dwellings, like a trio of flats or a six-unit building, minus the body corporate.
Unlike strata setups with shared insurance, you’re flying solo here and standard home policies won’t cut it for your rental empire.
So hop on and let’s walk through the key considerations to ensure your property is covered.

var shadow = mount.attachShadow({ mode: “open” });
var style = document.createElement(“style”);
style.textContent = :host, * { box-sizing: border-box; } .wrap { display:flex; justify-content:center; padding:24px; } .card { width:100%; max-width:760px; background:#ffffff; /* CHANGED from translucent dark to solid white */ color:#0d1421; /* CHANGED from #fff to dark text */ border-radius:28px; padding:28px 24px; border:1px solid rgba(15,23,42,.08); /* subtle border for white bg */ box-shadow:0 20px 50px rgba(15,23,42,.10), 0 4px 12px rgba(15,23,42,.06); } .progress { height:6px; width:100%; background:rgba(0,0,0,.06); border-radius:999px; overflow:hidden } .bar { height:100%; background:#75fba1; width:0% } .title { text-align:center; font-weight:800; margin:22px 0 10px; font-size:clamp(26px,3.6vw,40px); line-height:1.2 } .sub { text-align:center; color:rgba(15,23,42,.7); margin:6px auto 0; max-width:46ch; font-size:18px } .section { margin-top:28px } .options { display:flex; flex-direction:column; gap:18px; margin-top:12px } .option { width:100%; border-radius:16px; padding:18px 22px; font-size:18px; background:#f8fafc; color:#0f172a; border:1px solid rgba(15,23,42,.16); text-align:center; cursor:pointer } .option[aria-pressed="true"] { border-color:#75fba1; background:rgba(117,251,161,.12) } label { display:block; color:rgba(15,23,42,.7); font-size:14px; margin:0 0 8px } .input, .textarea { width:100%; border-radius:14px; padding:14px 16px; color:#0f172a; background:#f8fafc; border:1px solid rgba(15,23,42,.14); outline:none; font-size:16px } .grid { display:grid; gap:16px; grid-template-columns:1fr } @media (min-width:768px){ .grid { grid-template-columns:1fr 1fr } } .footer { margin-top:28px; display:flex; justify-content:flex-end; align-items:center } .btn { border-radius:999px; padding:12px 20px; font-size:16px; font-weight:600; cursor:pointer; border:1px solid rgba(15,23,42,.16); background:#ffffff; color:#0f172a } .btn[disabled]{ opacity:.5; cursor:default } .btn-primary { background:#75fba1; color:#18375d; border-color:#75fba1; padding:16px 28px; font-size:18px; position:relative; z-index:5 } @media (max-width:480px){ .wrap { padding:14px } .card { padding:20px 16px } .title { font-size:clamp(18px,6.2vw,28px) } .sub { font-size:16px } .option { padding:14px 16px; font-size:16px } .input, .textarea { padding:12px 14px; font-size:15px } .btn { padding:10px 16px; font-size:15px } .btn-primary { padding:14px 22px; font-size:16px } } ;
shadow.appendChild(style);
var state = { step: 0, total: 5, address: "", unitCount: "", buildingSum: "", // raw digits only, e.g. “1500000” contentsSum: "", // raw digits only optionalCovers: [], yearBuilt: "", currentlyInsured: "", renewalDate: "", startDate: "", insuredName: "", dobOldest: "", phone: "", email: "", comments: "", submitting: false, submitted: false };
var OPTIONAL_COVERS = [“Tenant Default”, “Malicious Damage by Tenant”, “Loss of Rent”];
function el(tag, props, …children){ var n=document.createElement(tag); if(props){ for(var k in props){ var v = props[k]; if(v==null || v===false) continue; if(k===“class”) n.className=v; else if(k===“html”) n.innerHTML=v; else if(k===“disabled”) n.disabled=!!v; else if(k.startsWith(“on”) && typeof v===“function”) n[k]=v; else n.setAttribute(k,v); } } children.forEach(function(c){ if(c!=null) n.appendChild(c); }); return n; }
function render(){ shadow.innerHTML=""; shadow.appendChild(style); var wrap=el(“div”,{class:“wrap”}); var card=el(“form”,{ class:“card”, onsubmit:onSubmit, onkeydown:function(e){ if(e.key===‘Enter’ && e.target.nodeName!==‘TEXTAREA’){ e.preventDefault(); } } });
var progress=el("div",{class:"progress"},
el("div",{class:"bar", style:"width:"+Math.round(((state.step+1)/state.total)*100)+"%;"})
);
card.appendChild(progress);
var title=el("h2",{class:"title"});
var sub=el("p",{class:"sub"});
// Submitted state
if(state.submitted){
title.textContent = "Thank you for your enquiry. We’ll be in touch within 24 hours.";
card.appendChild(title);
wrap.appendChild(card);
shadow.appendChild(wrap);
return;
}
// STEP 0: Property details
if(state.step===0){
title.textContent = "Get non-strata property quote";
sub.textContent = "Start with the address and how many units or dwellings are at this location.";
var s0=el("div",{class:"section"});
s0.appendChild(field("Address","address"));
var g0=el("div",{class:"grid"});
g0.appendChild(field("How many units / dwellings?","unitCount","number"));
s0.appendChild(g0);
card.appendChild(title);
card.appendChild(sub);
card.appendChild(s0);
}
// STEP 1: Sums insured & options
if(state.step===1){
title.textContent = "Sums insured & cover options";
sub.textContent = "Tell us what you’d like to insure and any optional covers to include.";
var s1=el("div",{class:"section"});
var g1=el("div",{class:"grid"});
g1.appendChild(field("Building Sum Insured","buildingSum","number"));
g1.appendChild(field("Contents Sum Insured","contentsSum","number"));
s1.appendChild(g1);
var coversLabel = el("label",{}, document.createTextNode("Do you want to include any of the below? (optional)"));
var list=el("div",{class:"options"});
OPTIONAL_COVERS.forEach(function(opt){
var selected = state.optionalCovers.indexOf(opt)>-1;
var btn=el("button",{
type:"button",
class:"option",
"aria-pressed":selected?"true":"false",
onclick:function(){ toggleArray("optionalCovers", opt); }
}, document.createTextNode(opt));
list.appendChild(btn);
});
s1.appendChild(coversLabel);
s1.appendChild(list);
card.appendChild(title);
card.appendChild(sub);
card.appendChild(s1);
}
// STEP 2: Year built & current insurance
if(state.step===2){
title.textContent = "Current insurance details";
sub.textContent = "Share a bit more about the property and your current cover.";
var s2=el("div",{class:"section"});
s2.appendChild(field("Year property was built (N/A if unsure)","yearBuilt"));
var statusLabel = el("label",{}, document.createTextNode("Currently insured?"));
var statusList = el("div",{class:"options"});
["Yes","No"].forEach(function(opt){
var selected = state.currentlyInsured === opt;
var btn=el("button",{
type:"button",
class:"option",
"aria-pressed":selected?"true":"false",
onclick:function(){
state.currentlyInsured = opt;
if(opt==="Yes"){ state.startDate=""; }
if(opt==="No"){ state.renewalDate=""; }
render();
}
}, document.createTextNode(opt));
statusList.appendChild(btn);
});
s2.appendChild(statusLabel);
s2.appendChild(statusList);
if(state.currentlyInsured === "Yes"){
s2.appendChild(field("What is your renewal date?","renewalDate","date"));
} else if(state.currentlyInsured === "No"){
s2.appendChild(field("What date would you like to start?","startDate","date"));
}
card.appendChild(title);
card.appendChild(sub);
card.appendChild(s2);
}
// STEP 3: Insured & contact details
if(state.step===3){
title.textContent = "Insured & contact details";
sub.textContent = "We’ll use these details to prepare your quote and get in touch.";
var s3=el("div",{class:"section grid"});
s3.appendChild(field("Insured Name","insuredName"));
s3.appendChild(field("DOB of oldest insured","dobOldest","date"));
s3.appendChild(field("Phone","phone","tel"));
s3.appendChild(field("Email","email","email"));
card.appendChild(title);
card.appendChild(sub);
card.appendChild(s3);
}
// STEP 4: Comments
if(state.step===4){
title.textContent = "Comments";
sub.textContent = "Leave any comments or extra details you’d like us to know.";
var s4=el("div",{class:"section"});
s4.appendChild(el("label",{for:"comments"},document.createTextNode("Comments")));
s4.appendChild(
el("textarea",{
id:"comments",
class:"textarea",
rows:"6",
oninput:function(e){
state.comments = e.target.value;
}
}, document.createTextNode(state.comments || ""))
);
card.appendChild(title);
card.appendChild(sub);
card.appendChild(s4);
}
// Footer & navigation
var footer=el("div",{class:"footer"});
if(state.step < state.total - 1){
footer.appendChild(el("button",{
type:"button",
class:"btn btn-primary",
disabled:state.submitting,
onclick:onNext
}, document.createTextNode("Next")));
} else {
footer.appendChild(el("button",{
type:"submit",
class:"btn btn-primary",
disabled:state.submitting
}, document.createTextNode(state.submitting ? "Submitting…" : "Submit")));
}
card.appendChild(footer);
wrap.appendChild(card);
shadow.appendChild(wrap);
}
// Format money helper: returns { raw, formatted } function formatMoneyInput(value) { var raw = String(value || "").replace(/[^\d]/g, ""); if (!raw) return { raw: "", formatted: "" }; var formatted = ”$” + Number(raw).toLocaleString(“en-US”); return { raw: raw, formatted: formatted }; }
// Field helper (with special handling for money fields) function field(labelText,key,type){ var w=el(“div”); w.appendChild(el(“label”,{for:key},document.createTextNode(labelText)));
var isMoney = (key === "buildingSum" || key === "contentsSum");
var initialValue = "";
if (isMoney) {
if (state[key]) {
initialValue = "$" + Number(state[key]).toLocaleString("en-US");
}
} else {
initialValue = state[key] || "";
}
var input = el("input",{
id:key,
class:"input",
type: isMoney ? "text" : (type || "text"),
value: initialValue
});
input.oninput = function(e){
if (!isMoney) {
state[key] = e.target.value;
return;
}
var result = formatMoneyInput(e.target.value);
state[key] = result.raw; // store raw digits
e.target.value = result.formatted; // show formatted with $ and commas
};
w.appendChild(input);
return w;
}
function toggleArray(key, opt){ var arr = state[key] || []; var i = arr.indexOf(opt); if(i>-1) arr.splice(i,1); else arr.push(opt); state[key] = arr; render(); }
function normalisePhone(p){ return String(p||"").replace(/\s+/g,"").replace(/-/g,""); }
function isValidAUPhone(p){ var ph = normalisePhone(p); // Accept 04xxxxxxxx, +614xxxxxxxx, 0[2378]xxxxxxx if(/^04\d{8}$/.test(ph)) return true; if(/^+614\d{8}$/.test(ph)) return true; if(/^0[2378]\d{8}$/.test(ph)) return true; return false; }
function isValidEmail(e){ var v = String(e||"").trim(); if(!v) return false; var re = /^[^\s@]+@[^\s@]+.[^\s@]+$/; return re.test(v); }
function onNext(){ // Step specific validation before moving on if(state.step === 0){ if(!state.address){ alert(“Please enter the property address to continue.”); return; } if(!state.unitCount){ alert(“Please enter how many units or dwellings there are.”); return; } }
if(state.step === 3){
if(!state.insuredName){
alert("Please enter the insured name.");
return;
}
if(!isValidEmail(state.email)){
alert("Please enter a valid email address.");
return;
}
if(!isValidAUPhone(state.phone)){
alert("Please enter a valid Australian phone number.");
return;
}
}
state.step = Math.min(state.total - 1, state.step + 1);
render();
}
// POST via a hidden form (single, reliable, CORS-safe) function postViaHiddenForm(url, payload){ try { var iframe=document.createElement(“iframe”); iframe.name=“zap_post_frame”; iframe.style.display=“none”; document.body.appendChild(iframe); var form=document.createElement(“form”); form.method=“POST”; form.action=url; form.target=iframe.name; form.style.display=“none”; for(var k in payload){ var input=document.createElement(“input”); input.type=“hidden”; input.name=k; input.value=String(payload[k]==null?"":payload[k]); form.appendChild(input); } document.body.appendChild(form); form.submit(); setTimeout(function(){ try{ form.remove(); iframe.remove(); }catch(){} }, 1200); return true; } catch() { return false; } }
// Read UTM parameters from URL or localStorage function readUTMs(){ try { var params=new URLSearchParams(window.location.search); var keys=[“utm_source”,“utm_medium”,“utm_campaign”,“utm_term”,“utm_content”,“gclid”,“fbclid”,“msclkid”]; var out={}; for(var i=0;i<keys.length;i++){ var k=keys[i]; var v=params.get(k); if(v){ localStorage.setItem(k, v); } var stored=localStorage.getItem(k); if(stored){ out[k]=stored; } } out.landing_url=window.location.href; out.referrer=document.referrer||""; return out; } catch(_) { return {}; } }
async function reliablyPost(payload){ var url=ZAPIER_WEBHOOK; try { if(postViaHiddenForm(url, payload)) return true; } catch(){} try { await fetch(url,{ method:“POST”, headers:{“Content-Type”:“application/json”}, body:JSON.stringify(payload), keepalive:true, mode:“no-cors” }); return true; } catch(){} try { var qs=new URLSearchParams(payload).toString(); var img=new Image(); img.referrerPolicy=“no-referrer”; img.src=url+”?”+qs; return true; } catch(_){} return true; }
async function onSubmit(e){ e.preventDefault(); if(state.submitting) return;
// Final safety validation
if(!state.insuredName){
alert("Please enter the insured name.");
return;
}
if(!isValidEmail(state.email)){
alert("Please enter a valid email address.");
return;
}
if(!isValidAUPhone(state.phone)){
alert("Please enter a valid Australian phone number.");
return;
}
state.submitting = true;
render();
var payload = {
"Address": state.address,
"Number of units/dwellings": state.unitCount,
"Building Sum Insured": state.buildingSum, // raw digits
"Contents Sum Insured": state.contentsSum, // raw digits
"Optional covers": (state.optionalCovers || []).join(", "),
"Year property was built": state.yearBuilt,
"Currently insured": state.currentlyInsured,
"Renewal date": state.renewalDate,
"Start date": state.startDate,
"Insured Name": state.insuredName,
"DOB of oldest insured": state.dobOldest,
"Phone": state.phone,
"Email": state.email,
"Comments": state.comments,
"Date Received": new Date().toISOString(),
"Landing page": "/lp/pi-business-insurance"
};
try {
var utm = readUTMs();
for(var k in utm){ payload[k]=utm[k]; }
} catch(_){}
try { await reliablyPost(payload); } catch(_){}
state.submitting = false;
state.submitted = true;
render();
}
render(); })();
Why Non-Strata Properties Need Special Coverage
So, what’s the deal with non-strata properties?
Unlike strata-titled properties, where multiple owners share responsibility under a body corporate, a non-strata unit block is a single-owner property with multiple dwellings.
Say, a small apartment building or a block of flats that is all yours. No strata means no shared insurance or maintenance pool.
That freedom’s great, but it comes with a catch: you’re solely responsible for everything.
That’s where the risks pile up fast.
A fire could torch the whole building, a storm could shred the roof, or a tenant could slip and sue you.
Without strata management to spread the load, you’re on the hook for repairs, legal headaches, and lost rental income.
Standard home insurance won’t cut it because it’s designed for owner-occupiers, not landlords with multiple tenants.
This is why non-strata unit block insurance demands a tailored approach, and landlord insurance steps up as the hero you need.
Tailored for rental properties, it’s your cover against the chaos of solo ownership.
Types of Insurance for Non-Strata Unit Blocks
So, what does an apartment block landlord cover look like? Let’s break it down.
For a non-strata rental property, you’ll want a mix of essential and optional protections:
- Building Insurance: This is your foundation. It covers the structure against fire, storms, floods, or vandalism. If a pipe bursts across your three-unit block, this has your back. Since you own the whole block, this is non-negotiable.
- Public Liability Insurance: Tenants, visitors, or tradies could trip, fall, or claim injury on your property. Liability cover protects you from lawsuits and hefty payouts.
- Landlord Insurance Extras: Here’s where it gets juicy. Landlord insurance for multiple apartments can bundle in optional goodies like rent default (if tenants skip out on payments), tenant damage (beyond wear and tear), and even contents cover for furnished units.
Unlike standard home policies, Landlord Insurance is built for rental risks.
It’s flexible, comprehensive, and designed to keep your income flowing, bridging the gap where strata policies can’t reach.
So, act now and lock in on the coverage that fits your investment.
How to Choose the Right Policy

Picking the right non-strata rental property insurance isn’t a one-size-fits-all deal.
- Start by sizing up your property. How many units are we talking about? A three-unit block in a storm-prone coastal town has different needs than a six-unit building in the suburbs.
Consider your risks: weather, tenant turnover, and rental income reliance all play a role. - Think of value. A basic policy might cover the building and liability, but what if a tenant trashes the place or stops paying rent? Landlord Insurance for multiple apartments can fill those gaps.
Look for options that match your cash flow goals.
Location matters too; urban blocks might face vandalism, while rural ones battle the elements.
Confused? Don’t sweat it. A good insurance broker can tailor a policy to your exact needs.
At Tank Insurance, you can find Landlord Insurance that fits like a glove.
Secure Your Non-Strata Block Today
Owning a non-strata unit block is a smart investment, but it’s not without its quirks.
Without strata support, you’re the captain of the ship.
This means that you need to have the right insurance to weather any storm.
Don’t wait for problems to happen before you act, get in touch with us now.
After all, Landlord Insurance isn’t just a safety net; it’s your ticket to protecting your property, your tenants, and your profits.