{"id":318,"date":"2026-09-27T21:31:57","date_gmt":"2026-09-27T21:31:57","guid":{"rendered":"https:\/\/stagingloom.com\/jml\/pricing\/"},"modified":"2026-09-27T21:31:57","modified_gmt":"2026-09-27T21:31:57","slug":"pricing","status":"publish","type":"page","link":"https:\/\/stagingloom.com\/jml\/pricing\/","title":{"rendered":"Cleaning Prices Melbourne"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"318\" class=\"elementor elementor-318\">\n\t\t\t\t<div class=\"elementor-element elementor-element-244e90a e-con e-atomic-element e-flexbox-base e-default-div e-2ec41da \" data-id=\"244e90a\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"244e90a\">\n    \t\t<div class=\"elementor-element elementor-element-751ee9b elementor-widget elementor-widget-html\" data-id=\"751ee9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- WEB_CONTENT_START -->\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,500;12..96,600;12..96,700;12..96,800&family=Figtree:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap\" rel=\"stylesheet\">\n<style>\n\/* ===== JML inner-page kit - every selector scoped to #jml-pg ===== *\/\n#jml-pg{\n  --ink:#132312; --ink2:#42563F; --ink3:#6B7C67;\n  --green:#265525; --green-d:#16330F; --green-l:#31702F; --green-x:#0D2109;\n  --sage:#B5CFB4; --sage-t:#E6F0E4; --sage-d:#8FB58D;\n  --blush:#F9C6C5; --blush-t:#FDEDEC; --blush-d:#E9A5A3;\n  --paper:#FBF9F5; --paper2:#F2EFE7; --line:#E3DFD5; --line2:#D3CEC1;\n  --dsp:'Bricolage Grotesque','Helvetica Neue',Arial,sans-serif;\n  --ser:'Instrument Serif',Georgia,'Times New Roman',serif;\n  --ui:'Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;\n  --wrap:1220px; --r:22px;\n  display:block; box-sizing:border-box;\n  font-family:var(--ui); font-size:16.5px; font-weight:400; font-style:normal;\n  line-height:1.68; color:var(--ink); background:var(--paper);\n  letter-spacing:normal; word-spacing:normal; text-transform:none; text-align:left;\n  text-indent:0; text-shadow:none; text-decoration:none; white-space:normal;\n  margin:0; padding:0; border:0; overflow-x:clip; -webkit-font-smoothing:antialiased;\n}\n#jml-pg *,#jml-pg *::before,#jml-pg *::after{box-sizing:border-box}\n#jml-pg :where(div,section,article,aside,header,footer,nav,span,p,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,\na,img,svg,picture,figure,figcaption,table,caption,colgroup,col,thead,tbody,tfoot,tr,th,td,details,summary,\nbutton,input,select,textarea,option,optgroup,form,output,progress,meter,datalist,\nlabel,fieldset,legend,iframe,video,audio,canvas,object,embed,main,address,hgroup,menu,dialog,\nem,strong,b,i,u,s,abbr,del,ins,kbd,samp,var,big,tt,center,font,\nsmall,sub,sup,blockquote,cite,q,hr,pre,code,time,mark,ruby,rt,rp,bdi,bdo,wbr,noscript){\n  margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;outline:0;\n  font:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-family:inherit;\n  color:inherit;letter-spacing:inherit;word-spacing:inherit;text-transform:inherit;text-align:inherit;\n  text-indent:0;text-decoration:none;text-shadow:none;line-height:inherit;white-space:inherit;\n  list-style:none;vertical-align:baseline;float:none;clear:none;position:static;\n  width:auto;height:auto;min-width:0;min-height:0;max-width:none;max-height:none;\n  transform:none;filter:none;opacity:1;visibility:visible;\n}\n#jml-pg strong,#jml-pg b{font-weight:700}\n#jml-pg em,#jml-pg i{font-style:italic}\n#jml-pg table{border-collapse:collapse}\n#jml-pg summary{display:block}\n#jml-pg img,#jml-pg svg{display:block;max-width:100%}\n#jml-pg img{height:auto}\n#jml-pg a{color:var(--green);text-decoration:none;cursor:pointer}\n#jml-pg h1,#jml-pg h2,#jml-pg h3,#jml-pg h4{font-family:var(--dsp);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--green-d)}\n#jml-pg p{margin:0 0 16px}\n#jml-pg p:last-child{margin-bottom:0}\n#jml-pg em.s{font-family:var(--ser);font-style:italic;font-weight:400;letter-spacing:0;color:var(--green-l)}\n#jml-pg .wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}\n#jml-pg .sec{padding:96px 0;position:relative}\n#jml-pg .sec.tight{padding:64px 0}\n#jml-pg .alt{background:var(--paper2)}\n#jml-pg .white{background:#fff}\n#jml-pg .dark{background:var(--green-d);color:#DCE7D7}\n#jml-pg .dark h2,#jml-pg .dark h3,#jml-pg .dark h4{color:#fff}\n#jml-pg .dark p{color:#B9C9B3}\n#jml-pg .dark a{color:var(--blush)}\n#jml-pg .dark em.s{color:var(--blush)}\n\n\/* ---------- hero ---------- *\/\n#jml-pg .hero{position:relative;background:var(--green-x);color:#E7EFE3;overflow:hidden;isolation:isolate}\n#jml-pg .hero-bg{position:absolute;inset:0;z-index:0}\n#jml-pg .hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42}\n#jml-pg .hero-bg::after{content:\"\";position:absolute;inset:0;\n  background:linear-gradient(104deg,rgba(13,33,9,.97) 0%,rgba(13,33,9,.9) 42%,rgba(13,33,9,.5) 100%)}\n#jml-pg .hero .wrap{position:relative;z-index:1}\n#jml-pg .hero-in{padding:112px 0 96px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:54px;align-items:end}\n#jml-pg .hero-in>*{min-width:0}\n#jml-pg .crumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:22px;font-size:13px;color:#9DB497}\n#jml-pg .crumb a{color:#9DB497;text-decoration:none}\n#jml-pg .crumb a:hover{color:var(--blush)}\n#jml-pg .crumb i{font-style:normal;opacity:.5}\n#jml-pg .crumb span{color:#E7EFE3}\n#jml-pg .hero h1{font-size:clamp(33px,4.6vw,58px);line-height:1.04;color:#fff;margin-bottom:20px}\n#jml-pg .hero h1 em.s{color:var(--sage)}\n#jml-pg .hero .hl{font-size:19px;color:#C3D4BD;margin-bottom:28px}\n#jml-pg .hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}\n#jml-pg .hero-tags span{display:inline-flex;align-items:center;gap:8px;background:rgba(181,207,180,.12);\n  border:1px solid rgba(181,207,180,.26);border-radius:999px;padding:8px 15px;font-size:13.4px;font-weight:600;color:#DCE7D7}\n#jml-pg .hero-tags svg{width:14px;height:14px;flex:0 0 14px;stroke:var(--sage);fill:none;stroke-width:2.2}\n#jml-pg .hero-btns{display:flex;flex-wrap:wrap;gap:12px}\n#jml-pg .hero-card{background:rgba(255,255,255,.07);border:1px solid rgba(181,207,180,.24);border-radius:var(--r);\n  padding:28px 26px;backdrop-filter:blur(8px)}\n#jml-pg .hero-card h2{font-size:17px;color:#fff;margin-bottom:16px;letter-spacing:-.02em;max-width:none}\n#jml-pg .hero-card .kv{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:14px;align-items:baseline;\n  padding-bottom:13px;margin-bottom:13px;border-bottom:1px solid rgba(181,207,180,.16)}\n#jml-pg .hero-card .kv:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}\n#jml-pg .hero-card dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);font-weight:700;white-space:nowrap}\n#jml-pg .hero-card dd{font-size:14.6px;color:#E7EFE3;text-align:right}\n\n\/* ---------- buttons ---------- *\/\n#jml-pg .btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:15.4px;padding:15px 26px;\n  border-radius:999px;border:1px solid transparent;transition:transform .18s,background .18s,box-shadow .18s;white-space:nowrap;text-decoration:none}\n#jml-pg .btn svg{width:15px;height:15px;flex:0 0 15px;stroke:currentColor;fill:none;stroke-width:2.2}\n#jml-pg .btn-p{background:var(--green);color:#fff;box-shadow:0 10px 26px rgba(38,85,37,.3)}\n#jml-pg .btn-p:hover{background:var(--green-l);transform:translateY(-2px)}\n#jml-pg .btn-s{background:#fff;color:var(--green-d);border-color:var(--line2)}\n#jml-pg .btn-s:hover{background:var(--blush-t);border-color:var(--blush-d);transform:translateY(-2px)}\n#jml-pg .btn-g{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(181,207,180,.35)}\n#jml-pg .btn-g:hover{background:#fff;color:var(--green-d)}\n\n\/* ---------- section heads + prose ---------- *\/\n#jml-pg .eb{display:inline-flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;letter-spacing:.16em;\n  text-transform:uppercase;color:var(--green-l);margin-bottom:15px}\n#jml-pg .eb svg{width:14px;height:14px;flex:0 0 14px;stroke:var(--blush-d);fill:none;stroke-width:2.2}\n#jml-pg .dark .eb{color:var(--blush)}\n#jml-pg .dark .eb svg{stroke:var(--sage)}\n#jml-pg h2{font-size:clamp(27px,3.4vw,40px);max-width:22ch}\n#jml-pg h3{font-size:clamp(19px,2vw,23px);letter-spacing:-.02em}\n#jml-pg h4{font-size:17px;letter-spacing:-.015em}\n#jml-pg .lead{font-size:18px;color:var(--ink2)}\n#jml-pg .dark .lead{color:#B9C9B3}\n#jml-pg .shead{margin-bottom:34px}\n#jml-pg .shead.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px 48px;align-items:end}\n#jml-pg .shead.row>*{min-width:0}\n#jml-pg .ans{background:var(--sage-t);border-left:4px solid var(--green);border-radius:0 14px 14px 0;\n  padding:19px 24px;margin:0 0 24px;font-size:17px;font-weight:600;color:var(--green-d);line-height:1.6}\n#jml-pg .ans b{display:block;font-family:var(--ui);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;\n  color:var(--green-l);font-weight:700;margin-bottom:7px}\n#jml-pg .dark .ans{background:rgba(181,207,180,.12);border-left-color:var(--blush);color:#EDF3EA}\n#jml-pg .dark .ans b{color:var(--blush)}\n#jml-pg .prose p{font-size:16.6px;color:var(--ink2)}\n#jml-pg .dark .prose p{color:#B9C9B3}\n#jml-pg .prose a{font-weight:600;text-decoration:underline;text-decoration-color:var(--sage-d);text-underline-offset:3px}\n#jml-pg .prose a:hover{color:var(--green-d);text-decoration-color:var(--green)}\n#jml-pg .dark .prose a{text-decoration-color:rgba(249,198,197,.5)}\n\n\/* ---------- lists ---------- *\/\n#jml-pg .bl li{display:flex;gap:11px;font-size:15.8px;color:var(--ink2);margin-bottom:11px;line-height:1.55}\n#jml-pg .bl li:last-child{margin-bottom:0}\n#jml-pg .bl svg{width:17px;height:17px;flex:0 0 17px;margin-top:4px;stroke:var(--green);fill:none;stroke-width:2.5}\n#jml-pg .dark .bl li{color:#C7D6C1}\n#jml-pg .dark .bl svg{stroke:var(--sage)}\n#jml-pg .bl.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}\n#jml-pg .bl.two>li{min-width:0}\n\n\/* ---------- split rows (balanced by construction) ---------- *\/\n#jml-pg .split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:stretch}\n#jml-pg .split.wide{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}\n#jml-pg .split.narrow{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}\n#jml-pg .split>*{min-width:0}\n#jml-pg .sc{min-width:0;align-self:stretch;display:flex;flex-direction:column}\n#jml-pg .split .sc>.cards{flex:1;grid-auto-rows:1fr}\n#jml-pg .split .sc>.note,#jml-pg .split .sc>.tabs,#jml-pg .split .sc>.tw{align-self:stretch}\n#jml-pg .media{align-self:stretch;min-height:420px;min-width:0}\n#jml-pg .media .mb{position:relative;top:0;height:min(560px,100%);min-height:420px;border-radius:var(--r);\n  overflow:hidden;background:var(--paper2)}\n#jml-pg .media.sticky .mb{position:sticky;top:112px}\n#jml-pg .media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}\n#jml-pg .mtag{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.95);\n  border-radius:15px;padding:14px 16px;display:flex;align-items:center;gap:12px}\n#jml-pg .mtag .mi{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:var(--sage-t);\n  display:flex;align-items:center;justify-content:center}\n#jml-pg .mtag svg{width:18px;height:18px;stroke:var(--green);fill:none;stroke-width:2}\n#jml-pg .mtag b{display:block;font-family:var(--dsp);font-size:14.4px;color:var(--green-d);letter-spacing:-.01em;line-height:1.25}\n#jml-pg .mtag span{font-size:12.8px;color:var(--ink3);line-height:1.4}\n\n\/* ---------- cards ---------- *\/\n#jml-pg .cards{display:grid;gap:16px}\n#jml-pg .cards>*{min-width:0}\n#jml-pg .c2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .c3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .c4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px;\n  transition:transform .2s,box-shadow .2s,border-color .2s;display:block;height:100%}\n#jml-pg .white .card{background:var(--paper)}\n#jml-pg a.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(19,35,18,.1);border-color:var(--sage-d)}\n#jml-pg .card .ci{width:42px;height:42px;border-radius:13px;background:var(--sage-t);display:flex;\n  align-items:center;justify-content:center;margin-bottom:14px}\n#jml-pg .card .ci svg{width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:1.9}\n#jml-pg .card h3{font-size:17px;margin-bottom:8px}\n#jml-pg .card p{font-size:14.4px;color:var(--ink3);line-height:1.55;margin:0}\n#jml-pg .card .go{display:inline-flex;align-items:center;gap:6px;margin-top:13px;font-size:13px;font-weight:700;color:var(--green)}\n#jml-pg .card .go svg{width:13px;height:13px;flex:0 0 13px;stroke:currentColor;fill:none;stroke-width:2.4}\n#jml-pg a.card:hover .go{gap:10px}\n#jml-pg .dark .card{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .card p{color:#A9BDA4}\n#jml-pg .dark .card .ci{background:rgba(181,207,180,.14)}\n#jml-pg .dark .card .ci svg{stroke:var(--sage)}\n\n\/* ---------- step rail (real sequences only) ---------- *\/\n#jml-pg .steps{counter-reset:st;display:grid;gap:16px}\n#jml-pg .steps.c4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .steps.c3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .steps>div{min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px}\n#jml-pg .steps>div::before{counter-increment:st;content:counter(st);width:30px;height:30px;border-radius:50%;\n  background:var(--green);color:#fff;font-family:var(--dsp);font-weight:800;font-size:13.5px;\n  display:flex;align-items:center;justify-content:center;margin-bottom:13px}\n#jml-pg .steps h3{font-size:16.5px;margin-bottom:7px}\n#jml-pg .steps p{font-size:14.2px;color:var(--ink3);margin:0;line-height:1.55}\n#jml-pg .dark .steps>div{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .steps p{color:#A9BDA4}\n\n\/* ---------- tab explorer (CSS radio) ---------- *\/\n#jml-pg .tabs{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px}\n#jml-pg .tabs>input{position:static;appearance:none;-webkit-appearance:none;opacity:0;width:0;height:0;\n  margin:0;padding:0;border:0;pointer-events:none}\n#jml-pg .tnav{display:grid;gap:4px;background:var(--paper2);border-radius:15px;padding:5px}\n#jml-pg .tnav>label{min-width:0;text-align:center;padding:12px 8px;border-radius:11px;font-size:13.6px;\n  font-weight:700;color:var(--ink2);cursor:pointer;transition:all .16s;user-select:none;line-height:1.3}\n#jml-pg .tnav>label:hover{background:rgba(255,255,255,.75)}\n#jml-pg .tpane{display:none;padding:26px 22px 22px}\n#jml-pg .tpane h3{font-size:19px;margin-bottom:7px}\n#jml-pg .tpane .tsub{font-size:14px;color:var(--ink2);margin-bottom:17px}\n#jml-pg .tpane .tgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 26px}\n#jml-pg .tpane .tgrid>li{min-width:0}\n#jml-pg .dark .tabs{background:rgba(181,207,180,.07);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .tnav{background:rgba(13,33,9,.45)}\n#jml-pg .dark .tnav>label{color:#C7D6C1}\n\n\/* ---------- tables ---------- *\/\n#jml-pg .tw{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:#fff;-webkit-overflow-scrolling:touch}\n#jml-pg table{width:100%;min-width:620px;font-size:14.6px}\n#jml-pg thead th{background:var(--green-d);color:#fff;text-align:left;padding:14px 16px;font-family:var(--dsp);\n  font-size:13.3px;font-weight:700;white-space:nowrap}\n#jml-pg tbody td{padding:13px 16px;border-top:1px solid var(--line);color:var(--ink2);vertical-align:top;line-height:1.5}\n#jml-pg tbody tr:nth-child(even) td{background:var(--paper)}\n#jml-pg tbody td:first-child{font-weight:700;color:var(--green-d)}\n#jml-pg .tnote{font-size:13.2px;color:var(--ink2);margin:12px 0 0}\n\n\/* ---------- folds (details) ---------- *\/\n#jml-pg .folds{display:grid;gap:12px}\n#jml-pg .fold{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}\n#jml-pg .fold>summary{display:block;position:relative;padding:19px 58px 19px 22px;font-family:var(--dsp);\n  font-weight:700;font-size:16.4px;color:var(--green-d);cursor:pointer;letter-spacing:-.015em;line-height:1.35;list-style:none}\n#jml-pg .fold>summary::-webkit-details-marker{display:none}\n#jml-pg .fold>summary::marker{content:\"\"}\n#jml-pg .fold>summary::after{content:\"\";position:absolute;right:21px;top:23px;width:11px;height:11px;\n  border-right:2.4px solid var(--green);border-bottom:2.4px solid var(--green);transform:rotate(45deg);\n  transition:transform .22s;pointer-events:none}\n#jml-pg .fold[open]>summary::after{transform:rotate(-135deg);top:27px}\n#jml-pg .fb{padding:0 22px 21px;font-size:15.2px;color:var(--ink2);line-height:1.62}\n#jml-pg .fb p{font-size:15.2px;margin:0 0 12px}\n#jml-pg .fb p:last-child{margin:0}\n#jml-pg .dark .fold{background:rgba(181,207,180,.08);border-color:rgba(181,207,180,.2)}\n#jml-pg .dark .fold>summary{color:#fff}\n#jml-pg .dark .fold>summary::after{border-color:var(--sage)}\n#jml-pg .dark .fb{color:#B9C9B3}\n\n\/* ---------- FAQ ---------- *\/\n#jml-pg .faq{display:grid;gap:12px 24px;align-items:start}\n#jml-pg .faq.f1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .faq.f2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .faq>details{min-width:0}\n\n\/* ---------- chips \/ suburb strip ---------- *\/\n#jml-pg .chips{display:flex;flex-wrap:wrap;gap:8px}\n#jml-pg .chips a,#jml-pg .chips span{font-size:13.2px;font-weight:500;color:var(--ink2);background:#fff;\n  border:1px solid var(--line);border-radius:999px;padding:7px 14px;transition:all .15s;display:inline-block}\n#jml-pg .chips a:hover{background:var(--green);color:#fff;border-color:var(--green)}\n#jml-pg .dark .chips a,#jml-pg .dark .chips span{background:rgba(181,207,180,.1);border-color:rgba(181,207,180,.2);color:#C7D6C1}\n#jml-pg .dark .chips a:hover{background:var(--sage);color:var(--green-d);border-color:var(--sage)}\n\n\/* ---------- stat band ---------- *\/\n#jml-pg .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(181,207,180,.22)}\n#jml-pg .stats>div{min-width:0;background:var(--green-d);padding:30px 22px;text-align:center}\n#jml-pg .stats .n{font-family:var(--dsp);font-size:clamp(26px,3.4vw,38px);font-weight:800;color:#fff;\n  letter-spacing:-.03em;line-height:1}\n#jml-pg .stats .n span{color:var(--blush)}\n#jml-pg .stats .l{font-size:13.2px;color:#AFC2A9;margin-top:9px;line-height:1.45}\n\n\/* ---------- callout \/ quote ---------- *\/\n#jml-pg .note{background:var(--blush-t);border:1px solid #F3DCDA;border-radius:18px;padding:24px 26px}\n#jml-pg .note h3{font-size:17px;margin-bottom:9px}\n#jml-pg .note p{font-size:15px;color:var(--ink2);margin:0 0 12px}\n#jml-pg .note p:last-child{margin:0}\n#jml-pg .quote{font-family:var(--ser);font-style:italic;font-size:22px;line-height:1.45;color:var(--green-d)}\n#jml-pg .qa{font-size:13.4px;color:var(--ink2);font-weight:600;margin-top:12px}\n\n\/* ---------- CTA ---------- *\/\n#jml-pg .cta{background:var(--sage-t);border-radius:var(--r);padding:52px 48px;display:grid;\n  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:44px;align-items:center}\n#jml-pg .cta>*{min-width:0}\n#jml-pg .cta h2{margin-bottom:13px;max-width:none}\n#jml-pg .cta p{font-size:16.4px;color:var(--ink2)}\n#jml-pg .cta .cb{display:flex;flex-direction:column;gap:11px}\n#jml-pg .cta .cb .btn{justify-content:center}\n\n\/* ---------- related ---------- *\/\n#jml-pg .rel{display:grid;gap:14px}\n#jml-pg .rel.r1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .rel.r2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .rel.r3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .rel>a{min-width:0;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);\n  border-radius:15px;padding:16px 18px;transition:all .18s}\n#jml-pg .rel>a:hover{border-color:var(--sage-d);transform:translateY(-3px);box-shadow:0 14px 30px rgba(19,35,18,.08)}\n#jml-pg .rel b{font-family:var(--dsp);font-size:14.6px;color:var(--green-d);letter-spacing:-.01em;line-height:1.3;flex:1}\n#jml-pg .rel svg{width:15px;height:15px;flex:0 0 15px;stroke:var(--green);fill:none;stroke-width:2.3}\n\n\/* ---------- gallery ---------- *\/\n#jml-pg .gal{display:grid;gap:14px}\n#jml-pg .gal.g1{grid-template-columns:minmax(0,1fr)}\n#jml-pg .gal.g2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .gal.g3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .gal.g4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .gal figure{min-width:0;position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4\/3;background:var(--paper2)}\n#jml-pg .gal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}\n#jml-pg .gal figure:hover img{transform:scale(1.05)}\n#jml-pg .gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;\n  background:linear-gradient(to top,rgba(19,35,18,.95) 0%,rgba(19,35,18,.88) 48%,transparent 100%);\n  color:#fff;font-size:12.5px;font-weight:600}\n\n\/* ---------- responsive ---------- *\/\n@media(max-width:1080px){\n  #jml-pg .c4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .steps.c4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .gal.g3,#jml-pg .gal.g4{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .hero-in{grid-template-columns:minmax(0,1fr);gap:36px;padding:92px 0 76px;align-items:start}\n  #jml-pg .rel.r3{grid-template-columns:repeat(3,minmax(0,1fr))}\n}\n@media(max-width:940px){\n  #jml-pg .sec{padding:64px 0}\n  #jml-pg .sec.tight{padding:48px 0}\n  #jml-pg .split,#jml-pg .split.wide,#jml-pg .split.narrow,#jml-pg .cta,#jml-pg .shead.row{grid-template-columns:minmax(0,1fr);gap:30px}\n  #jml-pg .media{min-height:0;align-self:start}\n  #jml-pg .split .sc>.cards{grid-auto-rows:auto}\n  #jml-pg .media .mb{position:relative;top:auto;height:0;padding-bottom:62.5%;min-height:0}\n  #jml-pg .media.sticky .mb{position:relative;top:auto}\n  #jml-pg .faq.f2{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .cta{padding:38px 30px}\n  #jml-pg .stats{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg h2{max-width:none}\n}\n@media(max-width:760px){\n  #jml-pg .c3,#jml-pg .steps.c3{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .bl.two,#jml-pg .tpane .tgrid{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .tnav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}\n  #jml-pg .tnav::-webkit-scrollbar{display:none}\n  #jml-pg .tnav>label{flex:0 0 auto;padding:11px 17px;white-space:nowrap}\n  #jml-pg .rel.r2,#jml-pg .rel.r3{grid-template-columns:minmax(0,1fr)}\n}\n@media(max-width:560px){\n  #jml-pg .wrap{padding:0 16px}\n  #jml-pg .sec{padding:52px 0}\n  #jml-pg .c2,#jml-pg .c3,#jml-pg .c4,#jml-pg .steps.c2,#jml-pg .steps.c3,#jml-pg .steps.c4,\n  #jml-pg .gal.g2,#jml-pg .gal.g3,#jml-pg .gal.g4,#jml-pg .stats{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .hero-in{padding:72px 0 56px}\n  #jml-pg .hero-card,#jml-pg .cta{padding:28px 22px}\n  #jml-pg .card,#jml-pg .steps>div{padding:20px 18px}\n  #jml-pg .ans{padding:17px 18px;font-size:16.2px}\n  #jml-pg .hero-card dd{text-align:left}\n  #jml-pg .hero-card .kv{grid-template-columns:minmax(0,1fr);gap:4px}\n}\n\n\/* ---------- verbatim review grid ---------- *\/\n#jml-pg .rvw{display:grid;gap:18px;margin-top:8px}\n#jml-pg .rvw.rv2{grid-template-columns:repeat(2,minmax(0,1fr))}\n#jml-pg .rvw.rv3{grid-template-columns:repeat(3,minmax(0,1fr))}\n#jml-pg .rvw.rv4{grid-template-columns:repeat(4,minmax(0,1fr))}\n#jml-pg .rvw>*{min-width:0}\n#jml-pg figure.rv-feat{grid-column:1 \/ -1}\n#jml-pg figure.rv-feat .quote{font-size:23px}\n#jml-pg figure.rv{background:#fff;border:1px solid var(--line);border-radius:18px;\n  padding:26px 26px 22px;display:flex;flex-direction:column;gap:10px}\n#jml-pg figure.rv .quote{font-size:18.5px;margin:0}\n#jml-pg figure.rv .qa{margin-top:auto}\n@media (max-width:900px){\n  #jml-pg .rvw.rv3,#jml-pg .rvw.rv4{grid-template-columns:repeat(2,minmax(0,1fr))}\n}\n@media (max-width:620px){\n  #jml-pg .rvw.rv2,#jml-pg .rvw.rv3,#jml-pg .rvw.rv4{grid-template-columns:minmax(0,1fr)}\n  #jml-pg figure.rv{padding:22px 20px 18px}\n  #jml-pg figure.rv .quote{font-size:17px}\n}\n\n\/* ---------- quote builder ---------- *\/\n#jml-pg .qf{display:grid;gap:22px;background:#fff;border:1px solid var(--line);\n  border-radius:var(--r);padding:34px 34px 30px}\n#jml-pg .qf>*{min-width:0}\n#jml-pg .qf fieldset{display:grid;gap:14px}\n#jml-pg .qf legend{font-family:var(--disp);font-weight:700;font-size:15px;\n  letter-spacing:.01em;color:var(--green-d);margin-bottom:12px}\n#jml-pg .qf-f{display:grid;gap:7px}\n#jml-pg .qf-f label{font-size:13.6px;font-weight:600;color:var(--ink2)}\n#jml-pg .qf-f select,#jml-pg .qf-f input,#jml-pg .qf-f textarea{\n  width:100%;box-sizing:border-box;font-family:var(--body);font-size:15.4px;color:var(--ink);\n  background:var(--porc);border:1px solid var(--line);border-radius:12px;padding:12px 14px;\n  line-height:1.4;-webkit-appearance:none;appearance:none}\n#jml-pg .qf-f select{background-image:linear-gradient(45deg,transparent 50%,var(--green) 50%),\n  linear-gradient(135deg,var(--green) 50%,transparent 50%);\n  background-position:calc(100% - 20px) calc(50% + 1px),calc(100% - 15px) calc(50% + 1px);\n  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:42px}\n#jml-pg .qf-f textarea{resize:vertical;min-height:86px}\n#jml-pg .qf-f select:focus,#jml-pg .qf-f input:focus,#jml-pg .qf-f textarea:focus{\n  outline:2px solid var(--green);outline-offset:1px;background:#fff}\n#jml-pg .qf fieldset:nth-of-type(2) .qf-f,#jml-pg .qf fieldset:nth-of-type(4) .qf-f{min-width:0}\n#jml-pg .qf-cs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}\n#jml-pg .qf-c{display:flex;align-items:flex-start;gap:9px;background:var(--porc);\n  border:1px solid var(--line);border-radius:12px;padding:11px 13px;cursor:pointer}\n#jml-pg .qf-c input{width:17px;height:17px;flex:0 0 auto;margin-top:1px;accent-color:var(--green)}\n#jml-pg .qf-c span{font-size:14.2px;color:var(--ink2);line-height:1.35}\n#jml-pg .qf-c:has(input:checked){background:var(--sage-t);border-color:var(--sage)}\n#jml-pg .qf-out{background:var(--sage-t);border-radius:18px;padding:26px 26px 22px;\n  display:grid;gap:12px}\n#jml-pg .qf-out h3{font-size:15px}\n#jml-pg .qf-brief{font-family:var(--ser);font-style:italic;font-size:19.5px;line-height:1.45;\n  color:var(--green-d)}\n#jml-pg .qf-note{font-size:13.2px;color:var(--ink2);line-height:1.5}\n#jml-pg .qf-out .cb{margin-top:2px}\n@media (min-width:760px){\n  #jml-pg .qf{grid-template-columns:repeat(2,minmax(0,1fr))}\n  #jml-pg .qf fieldset:nth-of-type(1){grid-column:1}\n  #jml-pg .qf fieldset:nth-of-type(2){grid-column:2}\n  #jml-pg .qf fieldset:nth-of-type(3){grid-column:1}\n  #jml-pg .qf fieldset:nth-of-type(4){grid-column:2}\n  #jml-pg .qf-out{grid-column:1 \/ -1}\n}\n@media (max-width:620px){\n  #jml-pg .qf{padding:24px 20px 22px;gap:18px}\n  #jml-pg .qf-cs{grid-template-columns:minmax(0,1fr)}\n  #jml-pg .qf-out{padding:22px 20px 18px}\n  #jml-pg .qf-brief{font-size:17.5px}\n}\n\n\/* ---------- guide review line ---------- *\/\n#jml-pg .rvdate{display:flex;align-items:center;gap:8px;font-size:13.4px;color:#B9C9B4;\n  margin-top:16px;line-height:1.5}\n#jml-pg .rvdate svg{width:16px;height:16px;flex:0 0 auto;color:var(--sage)}\n#jml-pg .rvdate time{font-weight:600;color:#E7EFE3}\n\n\/* ---------- host armour ----------\n   The :where() reset above sits at ID-level specificity, which beats any theme\n   selector. It does not beat a theme's !important, so the handful of properties\n   a page builder commonly forces that way, and that would visibly break the\n   widget, are pinned here. Colour is deliberately not pinned: the kit varies it\n   by context, and the ID-level rules already outrank normal theme styles. *\/\n#jml-pg,#jml-pg *,#jml-pg *::before,#jml-pg *::after{box-sizing:border-box!important}\n#jml-pg *{float:none!important;clear:none!important}\n#jml-pg{-webkit-text-size-adjust:100%;text-size-adjust:100%}\n#jml-pg :where(ul,ol,li){list-style:none!important}\n#jml-pg img,#jml-pg svg{max-width:100%!important;filter:none!important}\n<\/style>\n<div id=\"jml-pg\">\n<section class=\"hero\"><div class=\"hero-bg\"><img fetchpriority=\"high\" src=\"https:\/\/stagingloom.com\/jml\/wp-content\/uploads\/2026\/10\/kitchen-bench-detail-melbourne-1.webp\" width=\"1400\" height=\"900\" alt=\"Cleaning services Melbourne prices: a kitchen cleaned on a fixed quote\" fetchpriority=\"high\" decoding=\"async\"><\/div><div class=\"wrap\"><div class=\"hero-in\"><div><nav class=\"crumb\"><a href=\"\/\">Home<\/a><i>\/<\/i><span>Cleaning Prices Melbourne<\/span><\/nav><h1>Cleaning Prices in <em class=\"s\">Melbourne<\/em><\/h1><p class=\"hl\">Every cleaning quote in Melbourne is built from the same six inputs. Knowing what they are lets you line two quotes up properly, and explains what the cheapest one has left out.<\/p><div class=\"hero-tags\"><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20\"\/><path d=\"M17 7a4 4 0 0 0-4-3h-2a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-2a4 4 0 0 1-4-3\"\/><\/svg>Fixed, not hourly<\/span><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 3h6l1 3H8z\"\/><rect x=\"4\" y=\"6\" width=\"16\" height=\"15\" rx=\"2\"\/><path d=\"M9 12h6M9 16h4\"\/><\/svg>Written scope attached<\/span><span><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 21s-7-5.6-7-11a7 7 0 1 1 14 0c0 5.4-7 11-7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg>No travel surcharge<\/span><\/div><div class=\"hero-btns\"><a class=\"btn btn-p\" href=\"\/booking\/\">Get an instant quote <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a class=\"btn btn-g\" href=\"tel:+61488898917\">Call +61 488 898 917<\/a><\/div><\/div><aside class=\"hero-card\"><h2>How we quote<\/h2><dl><div class=\"kv\"><dt>Unit<\/dt><dd>The property and the scope<\/dd><\/div><div class=\"kv\"><dt>Not<\/dt><dd>An hourly rate<\/dd><\/div><div class=\"kv\"><dt>Variation<\/dt><dd>Called before work, never added after<\/dd><\/div><div class=\"kv\"><dt>Travel<\/dt><dd>Not charged inside Melbourne<\/dd><\/div><\/dl><\/aside><\/div><\/div><\/section><section class=\"sec\"><div class=\"wrap\"><div class=\"split wide\"><div class=\"sc\"><div class=\"prose\"><p>Published cleaning prices are harder to find than they should be, and the reason is not secrecy. It is that a single number is almost always misleading. A three bedroom house can mean a compact single-storey home with one bathroom or a double-storey with three bathrooms and a studio out the back, and those are not the same job at any honest price.<\/p><p>What is genuinely useful is understanding the inputs. Once you know what moves a cleaning quote and by roughly how much, you can read two quotes side by side and see where they actually differ, which is usually in the scope rather than the rate.<\/p><p>That is what this page is for. It sets out the six drivers behind every quote, how each service is measured, what sits outside a base scope, and the specific questions worth asking anybody you are considering. For a figure on your own property, the quote form takes about two minutes and returns a fixed number rather than a range.<\/p><p>Three pages go deeper, one per service: <a href=\"\/pricing\/house-cleaning-cost\/\">house cleaning cost<\/a> for domestic rosters, <a href=\"\/pricing\/carpet-cleaning-cost\/\">carpet cleaning cost<\/a> for fibre work, and <a href=\"\/pricing\/end-of-lease-cleaning-cost\/\">end of lease cleaning cost<\/a> for vacate jobs.<\/p><\/div><\/div><div class=\"sc\"><div class=\"note spec\"><h3>What is always included<\/h3><ul class=\"bl\"><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>All equipment and eco-friendly products<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>A written scope before the work starts<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Background-checked, trained cleaners<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Insurance for the work we carry out<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>A same-day return if something is missed<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Travel anywhere inside greater Melbourne<\/span><\/li><\/ul><\/div><\/div><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 2v20\"\/><path d=\"M17 7a4 4 0 0 0-4-3h-2a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-2a4 4 0 0 1-4-3\"\/><\/svg>The drivers<\/span><h2>What determines cleaning services Melbourne prices?<\/h2><\/div><p class=\"lead\">Six inputs, ranked by how much each one moves the number.<\/p><\/div><div class=\"ans\"><b>Short answer<\/b>Scope and standard first, then size and layout, then current condition, then frequency, then add-ons, then access. Scope is by far the biggest, which is why comparing quotes on price alone tells you almost nothing.<\/div><div class=\"tw\"><table style=\"min-width:760px\"><thead><tr><th scope=\"col\">Driver<\/th><th scope=\"col\">Effect<\/th><th scope=\"col\">What to check when comparing quotes<\/th><\/tr><\/thead><tbody><tr><td>Scope and standard<\/td><td>Largest<\/td><td>Is it a routine clean, a deep clean or an exit clean? They are three different jobs<\/td><\/tr><tr><td>Size and layout<\/td><td>Large<\/td><td>Bathrooms move the number more than bedrooms. Stairs and a second living area add real time<\/td><\/tr><tr><td>Current condition<\/td><td>Large on a first visit<\/td><td>A property months behind needs a reset before any roster will hold<\/td><\/tr><tr><td>Frequency<\/td><td>Large per visit<\/td><td>Weekly costs less per visit than fortnightly, which costs less than one-off<\/td><\/tr><tr><td>Add-ons<\/td><td>Moderate, itemised<\/td><td>Oven, carpet, windows, inside cupboards. Are they included or listed as extra?<\/td><\/tr><tr><td>Access<\/td><td>Small to moderate<\/td><td>Dock bookings, lift keys, permit parking and long carries are real time<\/td><\/tr><\/tbody><\/table><\/div><p class=\"tnote\">If two quotes differ by more than about a quarter, the difference is almost never the hourly value of the labour. It is the scope, and the cheaper one usually has fewer items on it or a shorter time allowance.<\/p><\/div><\/section><section class=\"sec white\"><div class=\"wrap\"><div class=\"split\"><div class=\"media sticky\"><div class=\"mb\"><img loading=\"lazy\" src=\"https:\/\/stagingloom.com\/jml\/wp-content\/uploads\/2026\/10\/marble-splashback-kitchen-melbourne-1.webp\" width=\"1100\" height=\"1066\" alt=\"Melbourne kitchen cleaned under a fixed price cleaning scope\" loading=\"lazy\" decoding=\"async\"><div class=\"mtag\"><span class=\"mi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 3h6l1 3H8z\"\/><rect x=\"4\" y=\"6\" width=\"16\" height=\"15\" rx=\"2\"\/><path d=\"M9 12h6M9 16h4\"\/><\/svg><\/span><span><b>The scope is the promise<\/b><span>How long it takes is our problem, not your invoice.<\/span><\/span><\/div><\/div><\/div><div class=\"sc\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 8v4l3 2\"\/><circle cx=\"12\" cy=\"12\" r=\"9\"\/><\/svg>Fixed vs hourly<\/span><h2>Why fixed pricing rather than an hourly rate?<\/h2><div class=\"ans\"><b>Short answer<\/b>Because an hourly rate buys attendance and a fixed price buys an outcome. Bill by the hour and a cleaner who runs short of time has still honoured the deal. Bill against a documented scope and they have not.<\/div><div class=\"prose\"><p>Hourly pricing feels safer to a buyer and almost always is not. It looks transparent, because you can see exactly what you are paying per hour, but it leaves the total open and it quietly reverses the incentive. A cleaner paid by the hour is financially worse off for working efficiently, and better off for a job that takes longer than it should.<\/p><p>It also makes comparison impossible. One company quoting a lower hourly rate with a slower cleaner costs more than a higher rate with a faster one, and neither of you can tell in advance. Two quotes at the same hourly rate for the same property can differ by a factor of two in the final invoice.<\/p><p>A fixed price against a written scope moves the risk to the people best placed to carry it. If a property takes longer than we estimated, that is our estimating problem, not your invoice. If it takes less, you still get the full scope done, because the scope is what you bought.<\/p><p>The one honest caveat is that fixed pricing requires an accurate description. If a property bears no resemblance to its description, the cleaner phones before unpacking so the decision is yours, instead of a different job being completed and the invoice quietly revised.<\/p><\/div><\/div><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg>By service<\/span><h2>How is each cleaning service measured?<\/h2><\/div><p class=\"lead\">Different services use different units, and the unit tells you a lot.<\/p><\/div><div class=\"split\"><div class=\"sc\"><div class=\"ans\"><b>Short answer<\/b>House cleaning is priced on bedrooms, bathrooms and levels. Exit cleans add condition and add-ons. Carpet is per room. Upholstery is per seat. Commercial is per visit against a scope of works.<\/div><style>#jml-pg #pr0:checked~.tnav label[for=pr0]{background:var(--green);color:#fff}#jml-pg #pr0:checked~#prp0{display:block}#jml-pg #pr1:checked~.tnav label[for=pr1]{background:var(--green);color:#fff}#jml-pg #pr1:checked~#prp1{display:block}#jml-pg #pr2:checked~.tnav label[for=pr2]{background:var(--green);color:#fff}#jml-pg #pr2:checked~#prp2{display:block}#jml-pg #pr3:checked~.tnav label[for=pr3]{background:var(--green);color:#fff}#jml-pg #pr3:checked~#prp3{display:block}#jml-pg #prnav{grid-template-columns:repeat(4,minmax(0,1fr))}<\/style><div class=\"tabs\"><input type=\"radio\" name=\"pr\" id=\"pr0\" checked><input type=\"radio\" name=\"pr\" id=\"pr1\"><input type=\"radio\" name=\"pr\" id=\"pr2\"><input type=\"radio\" name=\"pr\" id=\"pr3\"><div class=\"tnav\" id=\"prnav\"><label for=\"pr0\">House<\/label><label for=\"pr1\">End of lease<\/label><label for=\"pr2\">Carpet and fabric<\/label><label for=\"pr3\">Commercial<\/label><\/div><div class=\"tpane\" id=\"prp0\"><h3>House and regular cleaning<\/h3><p class=\"tsub\">Measured on layout and rhythm.<\/p><ul class=\"bl tgrid\"><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Bedrooms set the base floor area<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Bathrooms move the price more than bedrooms do<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Levels add carry time and a second equipment setup<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Frequency lowers the per-visit figure substantially<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>The first clean on a new roster is quoted separately<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Add-ons such as oven and interior glass are named lines<\/span><\/li><\/ul><\/div><div class=\"tpane\" id=\"prp1\"><h3>End of lease and move out<\/h3><p class=\"tsub\">Measured on layout, condition and lease requirements.<\/p><ul class=\"bl tgrid\"><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Same layout inputs as a house clean, at a deeper scope<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Current condition is a major factor on this service<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Carpet steam cleaning is a separate line, often lease-required<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Oven cleaning is normally included at this scope<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Balcony, garage and external windows are extras<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Booking carpet and clean together is cheaper than separately<\/span><\/li><\/ul><\/div><div class=\"tpane\" id=\"prp2\"><h3>Carpet, rugs, upholstery, mattress<\/h3><p class=\"tsub\">Measured per room, per piece or per seat.<\/p><ul class=\"bl tgrid\"><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Carpet is per room; large open-plan counts as more than one<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Stairs are priced separately and take about as long as a bedroom<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Hallways and landings are their own line<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Upholstery is per seat, with recliners and modulars counted accordingly<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Rugs are priced by size and fibre<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Mattresses are priced by bed size, cheaper done together<\/span><\/li><\/ul><\/div><div class=\"tpane\" id=\"prp3\"><h3>Commercial and office<\/h3><p class=\"tsub\">Measured per visit against a scope of works.<\/p><ul class=\"bl tgrid\"><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>A written scope split into task frequencies<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Headcount matters more than floor area in an office<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Number of wet areas is a major driver<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Attendance frequency, which is not proportional to cost<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Floor surfaces, which change the nightly and periodic balance<\/span><\/li><li><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg><span>Consumables, supplied by us or by you, stated either way<\/span><\/li><\/ul><\/div><\/div><\/div><div class=\"media sticky\"><div class=\"mb\"><img loading=\"lazy\" src=\"https:\/\/stagingloom.com\/jml\/wp-content\/uploads\/2026\/10\/open-plan-kitchen-melbourne-1.webp\" width=\"1170\" height=\"1127\" alt=\"Open plan kitchen quoted on a fixed cleaning scope in Melbourne\" loading=\"lazy\" decoding=\"async\"><div class=\"mtag\"><span class=\"mi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg><\/span><span><b>The unit tells you a lot<\/b><span>Per hour, per room or per scope are three different offers.<\/span><\/span><\/div><\/div><\/div><\/div><\/div><\/section><section class=\"sec\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18h6M10 21h4\"\/><path d=\"M12 3a6 6 0 0 0-3.5 10.9c.6.5.9 1.2.9 1.9v.2h5.2v-.2c0-.7.3-1.4.9-1.9A6 6 0 0 0 12 3z\"\/><\/svg>Comparing<\/span><h2>How do you compare two cleaning quotes properly?<\/h2><\/div><div class=\"ans\"><b>Short answer<\/b>Line the scopes up rather than the prices. Check the frequency column, check what is listed as an extra, check whether products and equipment are included, and ask what happens when something is missed.<\/div><div class=\"folds\"><details class=\"fold\"><summary>Compare the scopes, not the totals<\/summary><div class=\"fb\"><p>Put both scopes side by side and look for the items one has and the other does not. Inside the oven, inside cupboards, window tracks, skirting boards, balcony and carpet are the usual differences, and they are what explains most price gaps.<\/p><p>A quote without an itemised scope cannot be compared to anything. Ask for one, and treat reluctance as information.<\/p><\/div><\/details><details class=\"fold\"><summary>Check the frequency column on commercial quotes<\/summary><div class=\"fb\"><p>A pair of commercial quotes can read almost identically and still differ twofold in how regularly corridors, bathrooms or bin rooms get attended. The frequency column is where the real difference usually sits.<\/p><p>Where everything appears on the every-visit line, nobody has actually thought the scope through, and it will either cost a great deal or quietly not happen.<\/p><\/div><\/details><details class=\"fold\"><summary>Ask what happens when something is missed<\/summary><div class=\"fb\"><p>Everybody misses something occasionally. What matters is the process afterwards. A same-day return at no charge is a meaningful commitment; a promise to raise it at the next visit is not.<\/p><p>Ask whether there is a form to fill in. If there is, that tells you how often it gets used.<\/p><\/div><\/details><details class=\"fold\"><summary>Check products, equipment and consumables<\/summary><div class=\"fb\"><p>Some quotes assume you supply products and equipment, which shifts a real cost onto you and is rarely stated prominently. For commercial work, consumables such as toilet paper and hand towel can be a significant line, and an unclear quote is how budgets get missed.<\/p><p>Ours include equipment and products as standard, with consumables stated either way.<\/p><\/div><\/details><details class=\"fold\"><summary>Be careful with unusually low quotes<\/summary><div class=\"fb\"><p>Cleaning is labour. A quote substantially below the others is not usually a more efficient business, it is a shorter time allowance, a thinner scope, or somebody paid below the award. The first two reveal themselves in the work; the third tends to surface later, in turnover and in who ends up at your door.<\/p><p>We would rather lose a job on price than win it by quoting a job we cannot deliver properly.<\/p><\/div><\/details><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18h6M10 21h4\"\/><path d=\"M12 3a6 6 0 0 0-3.5 10.9c.6.5.9 1.2.9 1.9v.2h5.2v-.2c0-.7.3-1.4.9-1.9A6 6 0 0 0 12 3z\"\/><\/svg>Common questions<\/span><h2>Pricing questions people ask but rarely get answered<\/h2><\/div><div class=\"ans\"><b>Short answer<\/b>Whether cleaning is tax deductible, whether a cheaper quote is a false economy, how often prices change, and what happens when a property outgrows its quote. All four have straightforward answers.<\/div><div class=\"folds\"><details class=\"fold\"><summary>Is cleaning tax deductible?<\/summary><div class=\"fb\"><p>For a business premises, cleaning is an ordinary operating expense and is deductible in the normal way. For a rental property, cleaning at the end of a tenancy and ongoing cleaning of common areas are generally deductible to the owner. For your own home it is a private expense, except where a genuine home office area is cleaned and apportioned.<\/p><p>Your accountant is the right person to confirm any of that for your circumstances. We issue a proper tax invoice with an ABN either way.<\/p><\/div><\/details><details class=\"fold\"><summary>Is the cheapest quote ever the right one?<\/summary><div class=\"fb\"><p>Sometimes, when it comes from a smaller operator with lower overheads doing exactly the same scope. Far more often it reflects a shorter time allowance, a narrower scope, or labour paid below award, and the first two become visible in the result inside a month.<\/p><p>The useful test is not the price, it is whether the scope matches. A cheap quote for the same itemised scope is worth taking seriously; a cheap quote with no scope is not a quote.<\/p><\/div><\/details><details class=\"fold\"><summary>How often do prices change?<\/summary><div class=\"fb\"><p>Like any trade, rates track wages and running costs, and ours are reviewed annually. When they do, we notify you before the visit the change applies to rather than putting it on an invoice and waiting to see whether anybody notices.<\/p><p>Where a property or a site has changed, that is a requote rather than an increase, and we will explain which one is happening.<\/p><\/div><\/details><details class=\"fold\"><summary>What if my property outgrows the quote?<\/summary><div class=\"fb\"><p>It happens constantly and it is usually gradual. A renovation adds a bathroom, a home office becomes a second living area, a business grows from twenty staff to forty. The first symptom is always that the visit starts feeling rushed.<\/p><p>We raise it rather than quietly doing less each time. Continuing to charge the old figure for a service that no longer matches the property does nobody any favours.<\/p><\/div><\/details><details class=\"fold\"><summary>Do you ask for a deposit?<\/summary><div class=\"fb\"><p>Not for residential work. You see the price and the scope, you confirm, and you pay after the clean. There is no card held on file and no upfront payment to recover if you change your mind.<\/p><p>Commercial accounts are invoiced on normal trading terms agreed at setup.<\/p><\/div><\/details><\/div><\/div><\/section><section class=\"sec white\"><div class=\"wrap\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 21s-7-5.6-7-11a7 7 0 1 1 14 0c0 5.4-7 11-7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg>Other factors<\/span><h2>What does not change the price?<\/h2><\/div><p class=\"lead\">Four things people expect to be charged for and are not.<\/p><\/div><div class=\"ans\"><b>Short answer<\/b>Travel anywhere in greater Melbourne, equipment and products, the first consultation or walk-through, and a return visit to fix something on the agreed scope.<\/div><div class=\"cards c4\"><div class=\"card\"><span class=\"ci\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 21s-7-5.6-7-11a7 7 0 1 1 14 0c0 5.4-7 11-7 11z\"\/><circle cx=\"12\" cy=\"10\" r=\"2.6\"\/><\/svg><\/span><h3>Travel<\/h3><p>No suburb loading and no call-out fee inside greater Melbourne. The whole metropolitan area is standard coverage.<\/p><\/div><div class=\"card\"><span class=\"ci\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M8 20h8a4 4 0 0 0 4-4v-2H4v2a4 4 0 0 0 4 4z\"\/><path d=\"M9 9c0-2 2-2 2-4M14 9c0-2 2-2 2-4\"\/><\/svg><\/span><h3>Equipment and products<\/h3><p>Included in every residential quote. Nothing needs to be supplied or stored for us.<\/p><\/div><div class=\"card\"><span class=\"ci\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 3h6l1 3H8z\"\/><rect x=\"4\" y=\"6\" width=\"16\" height=\"15\" rx=\"2\"\/><path d=\"M9 12h6M9 16h4\"\/><\/svg><\/span><h3>Quotes and walk-throughs<\/h3><p>The online quote is free and so is a commercial site walk-through. Neither is conditional on booking.<\/p><\/div><div class=\"card\"><span class=\"ci\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 3l8 3v6c0 5-3.4 8.3-8 9-4.6-.7-8-4-8-9V6z\"\/><path d=\"M9 12l2 2 4-4\"\/><\/svg><\/span><h3>Fixing a missed item<\/h3><p>A return visit for anything on the agreed scope is at no charge, and if the return does not fix it the clean is refunded.<\/p><\/div><\/div><div class=\"prose\"><p>For figures on your own property, the quote form asks for the layout and returns a fixed number: <a href=\"\/booking\/\">get an instant quote<\/a>. For jobs that do not fit a form, such as commercial sites or NDIS arrangements, <a href=\"\/contact\/\">contact the office<\/a> instead.<\/p><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"\/><\/svg>Worked comparison<\/span><h2>Why do two quotes for the same house differ so much?<\/h2><\/div><p class=\"lead\">A worked example using one three bedroom property and two scopes.<\/p><\/div><div class=\"ans\"><b>Short answer<\/b>Because the word house hides enormous variation, and because the two quotes are usually describing different work. The same three bedroom property can honestly carry quotes that differ by half, with both being fair.<\/div><div class=\"tw\"><table style=\"min-width:760px\"><thead><tr><th scope=\"col\">Variable<\/th><th scope=\"col\">Quote A assumes<\/th><th scope=\"col\">Quote B assumes<\/th><th scope=\"col\">Effect<\/th><\/tr><\/thead><tbody><tr><td>Bathrooms<\/td><td>One<\/td><td>Three<\/td><td>Large. Wet areas drive the hours<\/td><\/tr><tr><td>Levels<\/td><td>Single storey<\/td><td>Double with stairs<\/td><td>Moderate. Carry time and a second setup<\/td><\/tr><tr><td>Condition<\/td><td>Maintained fortnightly<\/td><td>Not cleaned in six months<\/td><td>Large on a first visit<\/td><\/tr><tr><td>Oven<\/td><td>Not included<\/td><td>Included<\/td><td>Moderate. It is a two to three hour job alone<\/td><\/tr><tr><td>Inside cupboards<\/td><td>Not included<\/td><td>Included<\/td><td>Large. This is the deep clean threshold<\/td><\/tr><tr><td>Carpet<\/td><td>Not included<\/td><td>Three rooms extracted<\/td><td>Large and separately quotable<\/td><\/tr><tr><td>Windows<\/td><td>Not included<\/td><td>Interior panes throughout<\/td><td>Moderate<\/td><\/tr><tr><td>Products and equipment<\/td><td>Client supplies<\/td><td>Contractor supplies<\/td><td>Small but frequently unstated<\/td><\/tr><\/tbody><\/table><\/div><p class=\"tnote\">Line the two up like this and the gap stops being mysterious. Almost every time, the cheaper quote is not better value at all, it is simply a smaller job described in words that sound the same. The useful question is never what the hourly rate is, it is how many hours are being allowed and exactly which rooms and items those hours have to cover.<\/p><\/div><\/section><section class=\"sec\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/><path d=\"M8 3v4M16 3v4M3 11h18\"\/><\/svg>Budgeting<\/span><h2>How should you budget for cleaning across a year?<\/h2><\/div><div class=\"ans\"><b>Short answer<\/b>Decide the routine rhythm first, then add the periodic items at their proper intervals, then allow for one reset. Most households underestimate by forgetting the periodic work entirely.<\/div><div class=\"steps c4\"><div><h3>Set the routine<\/h3><p>Weekly, fortnightly or monthly. This is the bulk of the annual figure and the easiest part to plan.<\/p><\/div><div><h3>Add the periodic work<\/h3><p>Carpet every 12 to 18 months, oven twice a year, upholstery every 18 to 24 months.<\/p><\/div><div><h3>Allow one reset<\/h3><p>A deep or spring clean once a year keeps the roster effective and costs less than letting it slide.<\/p><\/div><div><h3>Leave room for events<\/h3><p>Moving, a renovation, or hosting. These are the unplanned ones that blow a budget.<\/p><\/div><\/div><div class=\"prose\"><p>Approached that way, cleaning becomes a predictable annual line rather than a sequence of unwelcome surprises. It is also worth saying that the households and businesses who spend the least per year are rarely the ones chasing the cheapest hourly rate. They are the ones who settled on a sensible rhythm early, kept to it, and never let a property reach the state where somebody has to be called in to rescue it. The households that spend the most are generally the ones that book nothing until something has to be rescued, which is always the most expensive way to buy this service.<\/p><\/div><\/div><\/section><section class=\"sec alt\"><div class=\"wrap\"><div class=\"faqhead\"><div class=\"shead row\"><div><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 18h6M10 21h4\"\/><path d=\"M12 3a6 6 0 0 0-3.5 10.9c.6.5.9 1.2.9 1.9v.2h5.2v-.2c0-.7.3-1.4.9-1.9A6 6 0 0 0 12 3z\"\/><\/svg>Questions<\/span><h2>Frequently asked questions about cleaning prices<\/h2><\/div><p class=\"lead\">The three questions that decide which quote somebody accepts.<\/p><\/div><\/div><div class=\"faq f1\"><details class=\"fold\" open><summary>Do you charge hourly or a fixed price?<\/summary><div class=\"fb\"><p>Fixed, against a written scope. An hourly rate transfers the risk of a slow day onto you and gives a cleaner no reason to be efficient, because finishing early reduces their fee. A fixed price means the scope is the promise and the time it takes is our problem.<\/p><\/div><\/details><details class=\"fold\"><summary>Are cleaning products and equipment included?<\/summary><div class=\"fb\"><p>Yes, for every residential service. We bring our own vacuums, mops, cloths and eco-friendly products, so nothing needs to be kept in a cupboard for us. Should a surface require something specific, set the bottle aside with a note and that is what the cleaner will reach for.<\/p><\/div><\/details><details class=\"fold\"><summary>Do your prices include GST?<\/summary><div class=\"fb\"><p>Quotes state clearly whether a figure is inclusive or exclusive of GST, because for a business client it matters and for a household it is simply part of the number. If a quote you are comparing does not say, ask, because it is a common way for two quotes to look further apart than they are.<\/p><\/div><\/details><\/div><\/div><\/section><section class=\"sec tight\"><div class=\"wrap\"><div class=\"shead\"><span class=\"eb\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>Keep reading<\/span><h2>Where to go next<\/h2><\/div><div class=\"rel r2\"><a href=\"\/pricing\/end-of-lease-cleaning-cost\/\"><b>End of Lease Cleaning Cost Melbourne<\/b><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a href=\"\/pricing\/carpet-cleaning-cost\/\"><b>Carpet Cleaning Cost Melbourne<\/b><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a href=\"\/pricing\/house-cleaning-cost\/\"><b>House Cleaning Cost Melbourne<\/b><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a href=\"\/booking\/\"><b>Get an Instant Quote and Book<\/b><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><\/div><\/div><\/section><section class=\"sec tight\"><div class=\"wrap\"><div class=\"cta\"><div><h2>Get the figure for your actual property<\/h2><p>Ranges are useful for comparison and useless for budgeting. Send the layout, the service and the suburb and you get one number against a written scope, usually the same day.<\/p><\/div><div class=\"cb\"><a class=\"btn btn-p\" href=\"\/booking\/\">Get an instant quote <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg><\/a><a class=\"btn btn-s\" href=\"\/contact\/\">Contact us<\/a><\/div><\/div><\/div><\/section>\n<\/div>\n<script type=\"application\/ld+json\">{\n \"@context\": \"https:\/\/schema.org\",\n \"@graph\": [\n  {\n   \"@type\": \"WebPage\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/pricing\/#webpage\",\n   \"url\": \"https:\/\/jmlservices.com.au\/pricing\/\",\n   \"name\": \"Cleaning Services Melbourne Prices | How Quotes Are Built\",\n   \"description\": \"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.\",\n   \"inLanguage\": \"en-AU\",\n   \"isPartOf\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/#website\"\n   },\n   \"about\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/#business\"\n   },\n   \"breadcrumb\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/pricing\/#breadcrumb\"\n   }\n  },\n  {\n   \"@type\": \"BreadcrumbList\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/pricing\/#breadcrumb\",\n   \"itemListElement\": [\n    {\n     \"@type\": \"ListItem\",\n     \"position\": 1,\n     \"name\": \"Home\",\n     \"item\": \"https:\/\/jmlservices.com.au\/\"\n    },\n    {\n     \"@type\": \"ListItem\",\n     \"position\": 2,\n     \"name\": \"Cleaning Prices Melbourne\",\n     \"item\": \"https:\/\/jmlservices.com.au\/pricing\/\"\n    }\n   ]\n  },\n  {\n   \"@type\": \"Service\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/pricing\/#service\",\n   \"name\": \"Cleaning Prices Melbourne\",\n   \"serviceType\": \"cleaning services melbourne prices\",\n   \"provider\": {\n    \"@id\": \"https:\/\/jmlservices.com.au\/#business\"\n   },\n   \"areaServed\": {\n    \"@type\": \"City\",\n    \"name\": \"Melbourne\"\n   },\n   \"description\": \"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.\",\n   \"url\": \"https:\/\/jmlservices.com.au\/pricing\/\"\n  },\n  {\n   \"@type\": \"FAQPage\",\n   \"@id\": \"https:\/\/jmlservices.com.au\/pricing\/#faq\",\n   \"mainEntity\": [\n    {\n     \"@type\": \"Question\",\n     \"name\": \"Do you charge hourly or a fixed price?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Fixed, against a written scope. An hourly rate transfers the risk of a slow day onto you and gives a cleaner no reason to be efficient, because finishing early reduces their fee. A fixed price means the scope is the promise and the time it takes is our problem.\"\n     }\n    },\n    {\n     \"@type\": \"Question\",\n     \"name\": \"Are cleaning products and equipment included?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Yes, for every residential service. We bring our own vacuums, mops, cloths and eco-friendly products, so nothing needs to be kept in a cupboard for us. Should a surface require something specific, set the bottle aside with a note and that is what the cleaner will reach for.\"\n     }\n    },\n    {\n     \"@type\": \"Question\",\n     \"name\": \"Do your prices include GST?\",\n     \"acceptedAnswer\": {\n      \"@type\": \"Answer\",\n      \"text\": \"Quotes state clearly whether a figure is inclusive or exclusive of GST, because for a business client it matters and for a household it is simply part of the number. If a quote you are comparing does not say, ask, because it is a common way for two quotes to look further apart than they are.\"\n     }\n    }\n   ]\n  }\n ]\n}<\/script>\n\n<!-- WEB_CONTENT_END -->\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-318","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cleaning Services Melbourne Prices | How Quotes Are Built<\/title>\n<meta name=\"description\" content=\"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stagingloom.com\/jml\/pricing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cleaning Services Melbourne Prices | How Quotes Are Built\" \/>\n<meta property=\"og:description\" content=\"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stagingloom.com\/jml\/pricing\/\" \/>\n<meta property=\"og:site_name\" content=\"My website\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/pricing\\\/\",\"url\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/pricing\\\/\",\"name\":\"Cleaning Services Melbourne Prices | How Quotes Are Built\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/#website\"},\"datePublished\":\"2026-09-27T21:31:57+00:00\",\"description\":\"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/pricing\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stagingloom.com\\\/jml\\\/pricing\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/pricing\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cleaning Prices Melbourne\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/#website\",\"url\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/\",\"name\":\"My website\",\"description\":\"My WordPress Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stagingloom.com\\\/jml\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cleaning Services Melbourne Prices | How Quotes Are Built","description":"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/stagingloom.com\/jml\/pricing\/","og_locale":"en_US","og_type":"article","og_title":"Cleaning Services Melbourne Prices | How Quotes Are Built","og_description":"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.","og_url":"https:\/\/stagingloom.com\/jml\/pricing\/","og_site_name":"My website","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/stagingloom.com\/jml\/pricing\/","url":"https:\/\/stagingloom.com\/jml\/pricing\/","name":"Cleaning Services Melbourne Prices | How Quotes Are Built","isPartOf":{"@id":"https:\/\/stagingloom.com\/jml\/#website"},"datePublished":"2026-09-27T21:31:57+00:00","description":"How cleaning services in Melbourne are priced: what moves a quote, why fixed beats hourly, and how to compare two quotes that look the same but are not.","breadcrumb":{"@id":"https:\/\/stagingloom.com\/jml\/pricing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stagingloom.com\/jml\/pricing\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/stagingloom.com\/jml\/pricing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stagingloom.com\/jml\/"},{"@type":"ListItem","position":2,"name":"Cleaning Prices Melbourne"}]},{"@type":"WebSite","@id":"https:\/\/stagingloom.com\/jml\/#website","url":"https:\/\/stagingloom.com\/jml\/","name":"My website","description":"My WordPress Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stagingloom.com\/jml\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages\/318","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/comments?post=318"}],"version-history":[{"count":0,"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/pages\/318\/revisions"}],"wp:attachment":[{"href":"https:\/\/stagingloom.com\/jml\/wp-json\/wp\/v2\/media?parent=318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}