PageSourceSearch

https://www.hostaway.com/component---src-pages-tools-rental-arbitrage-calculator-jsx-82cc928d9781d9bdcf5c.js

js hostaway.com collected 2026-09-24 08:58:53 UTC 29,591 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkHostaway_Website=self.webpackChunkHostaway_Website||[]).push([[6436],{18679:function(e,t){t.A="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzMiIGhlaWdodD0iMzAiIHZpZXdCb3g9IjAgMCAzMyAzMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQuNTEzNTUiIGhlaWdodD0iMzAiIHRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDE0LjAyNDQgMzApIiBmaWxsPSIjRkQ2MzAwIi8+CjxyZWN0IHdpZHRoPSI0LjI4NTcxIiBoZWlnaHQ9IjMxLjU5NDkiIHRyYW5zZm9ybT0ibWF0cml4KC00LjYwMzUyZS0wOCAtMSAtMSA0LjE1MDQ5ZS0wOCAzMi4wNzYyIDE3LjE0NDUpIiBmaWxsPSIjRkQ2MzAwIi8+Cjwvc3ZnPgo="},52157:function(e,t,n){var a=n(96540),r=n(33185),o=n(56376);const i=r.default.nav.withConfig({displayName:"Breadcrumb__BreadcrumbContainer",componentId:"sc-g73ynr-0"})(["margin:1.25rem 0rem;font-size:0.875rem;color:#666;"]),l=r.default.ol.withConfig({displayName:"Breadcrumb__BreadcrumbList",componentId:"sc-g73ynr-1"})(["list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;align-items:center;"]),s=r.default.li.withConfig({displayName:"Breadcrumb__BreadcrumbItem",componentId:"sc-g73ynr-2"})(["display:flex;align-items:center;&:not(:last-child)::after{content:'›';margin:0 0.5rem;color:#999;}"]),c=e=>e.length>25?e.slice(0,22)+"...":e;t.A=e=>{let{items:t}=e;return t&&0!==t.length?a.createElement(i,null,a.createElement(l,{itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t.map((e,n)=>a.createElement(s,{key:n,itemScope:!0,itemType:"https://schema.org/ListItem",itemProp:"itemListElement"},a.createElement("meta",{itemProp:"position",content:n+1}),e.url&&n<t.length-1?a.createElement(o.ah,{itemProp:"item",itemType:"https://schema.org/WebPage",to:e.url},a.createElement("span",{itemProp:"name"},c(e.name))):a.createElement(o.EY,{itemProp:"name"},c(e.name)))))):null}},67732:function(e,t,n){n.r(t),n.d(t,{Head:function(){return k}});var a=n(96540),r=n(14733),o=n(46773),i=n(52157),l=n(56376),s=n(76897),c=n(91029),m=n(89521),u=n(84889),p=n(84446),d=n(44771),g=n(32389),h=n(91647);const y="rental-arbitrage-calculator",f="https://www.hostaway.com",b=f+"/tools/rental-arbitrage-calculator/",w="Rental Arbitrage Calculator: Profit & Breakeven",v="Free rental arbitrage calculator. Enter rent, nightly rate, and occupancy to see monthly profit, breakeven occupancy, and how fast your startup costs pay back.",E=[{slug:"rental-arbitrage",label:"Rental Arbitrage"},{slug:"break-even-occupancy",label:"Break-Even Occupancy"},{slug:"occupancy-rate",label:"Occupancy Rate"},{slug:"master-lease",label:"Master Lease"},{slug:"sublease",label:"Sublease"},{slug:"adr",label:"Average Daily Rate (ADR)"}],x=[{question:"What is rental arbitrage?",answer:"Rental arbitrage means leasing a property long-term and re-renting it as a short-term rental, keeping the spread between short-term revenue and the monthly rent. The landlord must explicitly permit subletting, usually via a lease clause or a master lease agreement, and local short-term rental rules still apply."},{question:"How much profit can rental arbitrage make per unit?",answer:"It depends entirely on the spread between nightly revenue and rent. Many operators aim for monthly short-term revenue approaching double the rent. As a worked example, a $2,000/month apartment earning $150 a night at 65% occupancy grosses about $2,970 in nightly revenue, leaving roughly $770 a month after rent and $200 of operating expenses: a workable deal, though not an exceptional one. Below about 48% occupancy the same unit loses money."},{question:"What occupancy rate do I need to break even?",answer:"Your breakeven occupancy equals your fixed monthly costs (rent plus other expenses) divided by what a fully-booked month would earn at your nightly rate (nightly rate x 30.44). If that number is above the occupancy realistic for your market, the deal does not work at that rent and rate: raise the rate, negotiate the rent, or walk away."},{question:"What startup costs should I budget for rental arbitrage?",answer:"Typical startup costs include the security deposit, first and last month of rent, furniture and furnishings, linens, kitchenware, smart locks, photography, and any landlord fees. A commonly cited range is $10,000-$20,000 for a one- or two-bedroom unit, though it varies widely by market and finish level. The calculator divides these by monthly profit to show how many months until you are paid back."},{question:"Is rental arbitrage legal?",answer:"It is legal where the lease allows subletting and local regulations permit short-term rentals, and prohibited where either says no. Always get written landlord consent and check city registration, permit, and zoning requirements before signing; rules vary widely by jurisdiction."}];t.default=e=>{var t,n,o;const[f,v]=a.useState(2e3),[k,S]=a.useState(150),[C,A]=a.useState(65),[I,z]=a.useState(3),[M,$]=a.useState(100),[L,_]=a.useState(200),[N,P]=a.useState(15e3),{page:T,pageContext:H}=e,{t:R,i18n:F}=(0,g.useTranslation)("hostawayAi"),{t:B}=(0,g.useTranslation)("landingUk"),D=null!==(t=null!==(n=null!==(o=(H||{}).language)&&void 0!==o?o:F.resolvedLanguage)&&void 0!==n?n:F.language)&&void 0!==t?t:DEFAULT_LANGUAGE,{isUkVisitor:j,isUkGeoResolved:W}=(0,h.$)(D,T),Z=(0,m.J)({monthlyRent:f,nightlyRate:k,occupancyPct:C,cleaningFee:M,avgStayLength:I,otherMonthlyExpenses:L,startupCosts:N});a.useEffect(()=>{(0,u.PD)(y)},[]),a.useEffect(()=>{const e=new URLSearchParams(window.location.search),t=(t,n,a,r)=>{const o=(0,c.vJ)(e.get(t));if(null===o)return null;const i=(0,c.qE)(o,n,a);return r?Math.round(i):i},n=t("rent",0,1e5),a=t("rate",0,1e5),r=t("occ",0,100,!0),o=t("stay",1,30,!0),i=t("cleaning",0,1e4),l=t("other",0,1e5),s=t("startup",0,1e6);
1[n,a,r,o,i,l,s].some(e=>null!==e)&&(U.current=!0),null!==n&&v(n),null!==a&&S(a),null!==r&&A(r),null!==o&&z(o),null!==i&&$(i),null!==l&&_(l),null!==s&&P(s)},[]);const Q=a.useRef(!0),U=a.useRef(!1);a.useEffect(()=>{if(Q.current)return void(Q.current=!1);if(U.current)return void(U.current=!1);if(!Z)return;const e=setTimeout(()=>{(0,u.HS)({toolName:y,monthly_rent:f,nightly_rate:k,occupancy_pct:C,monthly_profit:Number(Z.monthlyProfit.toFixed(2))});const e=new URLSearchParams;2e3!==f&&e.set("rent",String(f)),150!==k&&e.set("rate",String(k)),65!==C&&e.set("occ",String(C)),3!==I&&e.set("stay",String(I)),100!==(null!=M?M:0)&&e.set("cleaning",String(null!=M?M:0)),200!==(null!=L?L:0)&&e.set("other",String(null!=L?L:0)),15e3!==(null!=N?N:0)&&e.set("startup",String(null!=N?N:0));const t=e.toString();window.history.replaceState(null,"",window.location.pathname+(t?"?"+t:""))},1200);return()=>clearTimeout(e)},[f,k,C,M,I,L,N]);const O=Z?"Rental arbitrage estimate — $"+f+" rent, $"+k+"/night at "+C+"% occupancy: monthly profit "+(0,c.vv)(Z.monthlyProfit)+", breakeven occupancy "+(Z.breakevenOccupancy>1?"not achievable at this rate":(0,c.l9)(Z.breakevenOccupancy))+", payback "+(Z.paybackMonths===1/0?"n/a (not profitable)":Z.paybackMonths>120?"over 10 years":Z.paybackMonths.toFixed(1)+" months")+".":null,G=Z?Z.breakevenOccupancy>1?"Not achievable at this nightly rate":(0,c.l9)(Z.breakevenOccupancy):"—",q=Z?Z.paybackMonths===1/0?"Not profitable at these inputs":Z.paybackMonths<1?"Under 1 month":Z.paybackMonths>120?"Over 10 years":Z.paybackMonths.toFixed(1)+" months":"—";return a.createElement(r.A,e,a.createElement(c.as,null,a.createElement(c.d_,null,a.createElement(i.A,{items:[{name:"Home",url:"/"},{name:"Tools",url:"/tools/"},{name:"Rental Arbitrage Calculator"}]}),a.createElement(l.Rr,{$color:"#b94d00",$margin:"0 0 1.5rem"},"Free tools"),a.createElement(l.hE,{as:"h1",$margin:"0 0 1.5rem"},"Rental arbitrage calculator"),a.createElement(l.EY,{$maxWidth:"44rem",$color:"#413c3c",$laptopFontSize:"1.25rem",$margin:"0"},"Check whether an arbitrage deal pencils out before you sign the lease: monthly profit, the occupancy you need to break even, and how fast your startup costs pay back."))),a.createElement(c.z4,null,a.createElement(c.tC,{inputs:a.createElement(a.Fragment,null,a.createElement(c.Q7,{id:"rac-monthly-rent",label:"Monthly rent",prefix:"$",value:f,onChange:v,min:0,max:1e5,step:.01}),a.createElement(c.Q7,{id:"rac-nightly-rate",label:"Nightly rate",prefix:"$",value:k,onChange:S,min:0,max:1e5,step:.01}),a.createElement(c.hT,{id:"rac-occupancy",label:"Expected occupancy",value:C,onChange:A}),a.createElement(c.Q7,{id:"rac-avg-stay",label:"Average stay length (nights)",value:I,onChange:z,min:1,max:30,step:1,hint:"Used to estimate cleanings per month"}),a.createElement(c.Q7,{id:"rac-cleaning-fee",label:"Cleaning fee per turnover",prefix:"$",value:M,onChange:$,min:0,max:1e4,step:.01,hint:"Charged to the guest and passed through to your cleaner"}),a.createElement(c.Q7,{id:"rac-other-expenses",label:"Other monthly expenses",prefix:"$",value:L,onChange:_,min:0,max:1e5,step:.01,hint:"Utilities, supplies, software, insurance"}),a.createElement(c.Q7,{id:"rac-startup-costs",label:"Startup costs",prefix:"$",value:N,onChange:P,min:0,max:1e6,step:.01,hint:"Deposit, furniture, setup"})),results:Z?a.createElement(a.Fragment,null,a.createElement(c.gH,{label:"Monthly profit",value:(0,c.vv)(Z.monthlyProfit),tone:Z.monthlyProfit>=0?"positive":"negative"}),a.createElement(c.mC,null,a.createElement(c.u6,{label:"Monthly revenue",value:(0,c.vv)(Z.grossRevenue)}),a.createElement(c.u6,{label:"Nightly revenue ("+Z.bookedNights.toFixed(1)+" booked nights)",value:(0,c.vv)(Z.nightlyRevenue),muted:!0}),a.createElement(c.u6,{label:"Cleaning pass-through ("+Z.turnovers.toFixed(1)+" turnovers)",value:(0,c.vv)(Z.cleaningRevenue),muted:!0}),a.createElement(c.u6,{label:"Monthly expenses",value:"-"+(0,c.vv)(Z.totalExpenses),tone:"negative"}),a.createElement(c.u6,{label:"Profit margin",value:null===Z.profitMargin?"—":(0,c.l9)(Z.profitMargin)}),a.createElement(c.u6,{label:"Breakeven occupancy",value:G,emphasis:!0,tone:Z.breakevenOccupancy>1?"negative":"default"}),a.createElement(c.u6,{label:"Startup payback",value:q,emphasis:!0,tone:Z.paybackMonths===1/0?"negative":"default"})),a.createElement(c.d2,{toolName:y},"Running the numbers on unit #2? See how operators scale with Hostaway")):a.createElement(l.EY,{$color:"#6b7280",$margin:"0"},"Enter a monthly rent and nightly rate to see the profit breakdown.")}),a.createElement(c.vG,{toolName:y,pageTitle:w,pageUrl:b,summaryText:O}),a.createElement(c.oz,null,"Calculations use ",m.l," days per month (the calendar average). The cleaning fee is assumed to be charged to the guest and passed through to your cleaner at cost, so it appears in both revenue and expenses and does not change profit. Breakeven occupancy is your fixed monthly costs (rent + other expenses) divided by a fully-booked month at your nightly rate. Platform fees, taxes, and seasonality are not modeled;
1 treat results as a screening estimate, not a forecast."),a.createElement(c.DE,null,a.createElement(l.DZ,{as:"h2",$fontSize:"1.5rem",$laptopFontSize:"1.75rem",$margin:"0 0 1rem"},"How to read these numbers"),a.createElement(l.EY,{$color:"#413c3c",$lineHeight:"165%",$margin:"0 0 1.75rem"},"The single most important output is breakeven occupancy. It tells you the occupancy rate at which short-term revenue covers rent and operating expenses. If your market realistically runs at 60-70% and your breakeven is 48%, you have a cushion; if breakeven is 75%, one slow season puts you underwater. Compare the breakeven against real market occupancy data, not best-case assumptions."),a.createElement(l.EY,{$color:"#413c3c",$lineHeight:"165%",$margin:"0 0 1.75rem"},"Payback period converts startup costs, such as the deposit, furniture, and setup, into months of profit. Deals that pay back in 12-18 months are often considered strong; much beyond 24 months and your capital is locked up through at least two seasonal cycles before it earns anything."),a.createElement(l.EY,{$color:"#413c3c",$lineHeight:"165%",$margin:"0"},"Two costs deserve special attention: rent, which is fixed whether or not guests book, and occupancy, which compounds every other number. Before signing, stress-test the deal at 10-15 points below your expected occupancy and confirm the lease explicitly allows short-term subletting.")),a.createElement(s.k,{microdata:!1,title:"Rental arbitrage FAQs",titleFontSize:"1.5rem",titleLaptopFontSize:"1.75rem"},x.map((e,t)=>a.createElement(s.l,{key:e.question,question:e.question,defaultShow:0===t,microdata:!1},e.answer))),a.createElement("section",null,a.createElement(l.DZ,{as:"h2",$fontSize:"1.5rem",$laptopFontSize:"1.75rem",$margin:"2.5rem 0 1.5rem"},"Learn the terminology"),a.createElement(c.Bf,null,E.map(e=>a.createElement(c.xi,{key:e.slug,to:"/glossary/"+e.slug+"/"},e.label)),a.createElement(c.xi,{to:"/vacation-rental-guide/rental-arbitrage/profitability/"},"Guide: Arbitrage Profitability"),a.createElement(c.xi,{to:"/vacation-rental-guide/rental-arbitrage/"},"Guide: Rental Arbitrage"))),a.createElement("section",null,a.createElement(l.DZ,{as:"h2",$fontSize:"1.5rem",$laptopFontSize:"1.75rem",$margin:"2.5rem 0 0"},"More free tools"),a.createElement(c.LB,null,p.I.filter(e=>e.slug!==y).map(e=>a.createElement(c.JW,{key:e.slug,title:e.title,description:e.description,href:e.href,comingSoon:e.comingSoon}))))),a.createElement(d.A,{ctaHeading:j?B("cta_homeCtaText",{defaultValue:R("homeCtaText")}):R("homeCtaText"),color:"sienna",primaryButtonText:j?B("cta_Get_started",{defaultValue:R("Get started")}):R("Get started"),primaryButtonLink:"/get-free-demo/",secondaryButtonText:j?B("cta_getPricing",{defaultValue:R("getPricing")}):R("getPricing"),secondaryButtonLink:"/pricing/"}))};const k=e=>{let{pageContext:{i18n:t}}=e;const n=w+" | Hostaway",r=f+"/hostaway-logo.png",i={"@context":"https://schema.org","@type":"SoftwareApplication",name:"Rental Arbitrage Calculator",description:v,url:b,applicationCategory:"FinanceApplication",operatingSystem:"Web",offers:{"@type":"Offer",price:"0",priceCurrency:"USD"},publisher:{"@type":"Organization",name:"Hostaway",url:"https://www.hostaway.com"}},l={"@context":"https://schema.org","@type":"FAQPage",mainEntity:x.map(e=>({"@type":"Question",name:e.question,acceptedAnswer:{"@type":"Answer",text:e.answer}}))};return a.createElement(o.k,{originalPath:t.originalPath,language:t.language},a.createElement("title",null,n),a.createElement("meta",{name:"description",content:v}),a.createElement("meta",{property:"og:title",content:n}),a.createElement("meta",{property:"og:description",content:v}),a.createElement("meta",{property:"og:url",content:b}),a.createElement("meta",{property:"og:type",content:"website"}),a.createElement("meta",{property:"og:site_name",content:"Hostaway"}),a.createElement("meta",{property:"og:locale",content:"en_US"}),a.createElement("meta",{property:"og:image",content:r}),a.createElement("meta",{name:"twitter:card",content:"summary"}),a.createElement("meta",{name:"twitter:title",content:n}),a.createElement("meta",{name:"twitter:description",content:v}),a.createElement("meta",{name:"twitter:site",content:"@Hostaway"}),a.createElement("meta",{name:"twitter:image",content:r}),a.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(i)}}),a.createElement("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(l)}}))}},76897:function(e,t,n){n.d(t,{l:function(){return w},k:function(){return b}});var a,r,o,i=n(96540),l=n(75276),s=n(33185),c=n(11418);const m=s.default.div.withConfig({displayName:"styled__FaqContainerStyle",componentId:"sc-myw6ve-0"})(["display:flex;flex-direction:column;align-items:center;width:100%;max-width:71.875rem;margin:0 auto;user-select:none;"]),u=s.default.div.withConfig({displayName:"styled__FAQItem",componentId:"sc-myw6ve-1"})(["border-radius:1.25rem;border:1px solid #d9d9d9;padding:2.5rem 1.25rem;margin-bottom:1.25rem;width:100%;cursor:pointer;",""],c.A.laptop(a||(a=(0,l.A)(["\n    padding: 3.125rem 3.3125rem;\n  "])))),p=s.default.div.withConfig({displayName:"styled__FAQQuestion",componentId:"sc-myw6ve-2"})(["display:flex;justify-content:space-between;align-items:center;img{margin-left:1rem;flex-shrink:0;width:1.25rem;height:1.25rem;","}"],c.A.laptop(r||(r=(0,l.A)(["\n      width: 1.5rem;\n      height: 1.5rem;\n    "])))),d=s.default.div.withConfig({displayName:"styled__FAQAnswer",componentId:"sc-myw6ve-3"})(["position:relative;max-height:",";transition:max-height 0.1s ease-out;overflow:hidden;padding-bottom:",";"," p{margin:0 0 1rem;&:last-child{margin-bottom:0;}}ul{margin:0 0 1rem;padding-left:1.25rem;}li{margin-bottom:0.5rem;&:last-child{margin-bottom:0;}}a{color:#008380;text-decoration:underline;}"],e=>{var t;return e.$show?null!==(t=e.$maxHeight)&&void 0!==t?t:"50rem":"0"},e=>e.$show?"0.25rem":"0",c.A.laptop(o||(o=(0,l.A)(["\n    max-height: ",";\n  "])),e=>{var t;return e.$show?null!==(t=e.$laptopMaxHeight)&&void 0!==t?t:"25rem":"0"}));var g=n(71150),h=n(56376),y=n(86295),f=n(18679);const b=e=>{let{title:t,children:n,titleFontSize:a,titleLaptopFontSize:r,microdata:o=!0}=e;return i.createElement(m,o?{itemScope:!0,itemType:"https://schema.org/FAQPage"}:{},i.createElement(h.DZ,{$fontSize:null!=a?a:"1.75rem",$laptopFontSize:null!=r?r:"2.375rem",$textAlign:"center",$laptopTextAlign:"center",$margin:"0 0 1.875rem",$laptopMargin:"0 0 3.75rem"},t),n)},w=e=>{let{question:t,children:n,defaultShow:a=!1,questionFontSize:r,questionLaptopFontSize:o,answerMaxHeight:l,answerLaptopMaxHeight:s,microdata:c=!0}=e;const[m,b]=i.useState(a);return i.createElement(u,Object.assign({onClick:()=>b(!m),className:"faq-item",itemScope:!0,itemType:"https://schema.org/Question",itemProp:"mainEntity"},c?{itemScope:!0,itemType:"https://schema.org/Question",itemProp:"mainEntity"}:{}),i.createElement(p,{$show:m},i.createElement(h.EY,Object.assign({as:"h3",$fontSize:null!=r?r:"1.125rem",$laptopFontSize:null!=o?o:"1.375rem",$fontFamily:g.w4.fonts.lato.bold,$margin:"0",$lineHeight:"130%"},c?{itemProp:"name"}:{}),t),m?i.createElement("img",{src:y.A,alt:""}):i.createElement("img",{src:f.A,alt:""})),i.createElement(d,Object.assign({$show:m,$maxHeight:l,$laptopMaxHeight:s,itemScope:!0,itemType:"https://schema.org/Answer",itemProp:"acceptedA
1nswer"},c?{itemScope:!0,itemType:"https://schema.org/Answer",itemProp:"acceptedAnswer"}:{}),i.createElement(h.EY,Object.assign({as:"div",$margin:"1.875rem 0 0",$laptopFontSize:"1.125rem",itemProp:"text"},c?{itemProp:"text"}:{}),n)))}},84446:function(e,t,n){n.d(t,{I:function(){return a}});const a=[{slug:"airbnb-fee-calculator",title:"Airbnb Fee Calculator",description:"See what a stay costs your guest and what you take home, with Airbnb host and guest fees broken down and compared against Vrbo and Booking.com.",href:"/tools/airbnb-fee-calculator/"},{slug:"rental-arbitrage-calculator",title:"Rental Arbitrage Calculator",description:"Estimate monthly profit, breakeven occupancy, and payback period for a rental arbitrage unit from rent, nightly rate, and occupancy.",href:"/tools/rental-arbitrage-calculator/"},{slug:"str-income-calculator",title:"Short-Term Rental Income Calculator",description:"Estimate annual revenue, occupancy, and average daily rate for a property by city, property type, and bedrooms.",comingSoon:!0}]},86295:function(e,t){t.A="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzMiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDMzIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0LjI4NTcxIiBoZWlnaHQ9IjMxLjU5NDkiIHRyYW5zZm9ybT0ibWF0cml4KC00LjYwMzUyZS0wOCAtMSAtMSA0LjE1MDQ5ZS0wOCAzMi4wNzYyIDUuMTQ0NTMpIiBmaWxsPSIjRkQ2MzAwIi8+Cjwvc3ZnPgo="},89521:function(e,t,n){n.d(t,{J:function(){return r},l:function(){return a}});const a=30.44,r=e=>{let{monthlyRent:t,nightlyRate:n,occupancyPct:r,cleaningFee:o,avgStayLength:i,otherMonthlyExpenses:l,startupCosts:s}=e;if(!n||n<=0||!t||t<=0)return null;const c=Math.min(Math.max(null!=r?r:0,0),100)/100,m=l&&l>0?l:0,u=a*c,p=u/(i&&i>0?i:1),d=n*u,g=p*(o&&o>0?o:0),h=d+g,y=t+m+g,f=h-y;return{bookedNights:u,turnovers:p,nightlyRevenue:d,cleaningRevenue:g,grossRevenue:h,totalExpenses:y,monthlyProfit:f,profitMargin:h>0?f/h:null,breakevenOccupancy:(t+m)/(n*a),paybackMonths:f>0?(s&&s>0?s:0)/f:1/0}}},91029:function(e,t,n){n.d(t,{gH:function(){return i.gH},tC:function(){return i.tC},oz:function(){return i.oz},Q7:function(){return o.Q7},hT:function(){return o.hT},DE:function(){return i.DE},mC:function(){return i.mC},u6:function(){return i.u6},d2:function(){return i.d2},xi:function(){return i.xi},Bf:function(){return i.Bf},OY:function(){return o.OY},JW:function(){return v},LB:function(){return d},as:function(){return i.as},d_:function(){return i.d_},FL:function(){return i.FL},z4:function(){return i.z4},vG:function(){return A},qE:function(){return r.qE},vv:function(){return r.vv},l9:function(){return r.l9},vJ:function(){return r.vJ}});var a,r=n(53258),o=n(62820),i=n(70101),l=n(75276),s=n(96540),c=n(33185),m=n(64810),u=n(11418),p=n(56376);const d=c.default.div.withConfig({displayName:"cards__ToolCardGrid",componentId:"sc-1rp0i6g-0"})(["display:grid;grid-template-columns:1fr;gap:1.5rem;margin:2.5rem 0;",""],u.A.laptop(a||(a=(0,l.A)(["\n    grid-template-columns: repeat(3, 1fr);\n    gap: 2rem;\n    margin: 3rem 0;\n  "])))),g="\n  display: flex;\n  flex-direction: column;\n  gap: 0.625rem;\n  padding: 2rem 1.75rem;\n  background: #fff;\n  /* Homepage card treatment (LandingPage/Sections/Features). */\n  border: 1px solid #d8dbe0;\n  border-radius: 0.625rem;\n  box-shadow: 0 10px 65px 0 rgba(122, 50, 0, 0.05);\n  text-decoration: none;\n",h=(0,c.default)(m.Link).withConfig({displayName:"cards__LiveCard",componentId:"sc-1rp0i6g-1"})([""," transition:box-shadow 0.2s,border-color 0.2s;&:hover{border-color:#b94d00;box-shadow:0 10px 65px 0 rgba(122,50,0,0.12);}"],g),y=c.default.div.withConfig({displayName:"cards__ComingSoonCard",componentId:"sc-1rp0i6g-2"})([""," opacity:0.75;"],g),f=c.default.span.withConfig({displayName:"cards__CardDescription",componentId:"sc-1rp0i6g-3"})(["font-family:",";font-size:0.9375rem;line-height:150%;color:#413c3c;"],e=>e.theme.fonts.lato.base),b=c.default.span.withConfig({displayName:"cards__CardAction",componentId:"sc-1rp0i6g-4"})(["margin-top:auto;padding-top:0.5rem;font-family:",";font-size:0.9375rem;color:#008380;"],e=>e.theme.fonts.lato.bold),w=c.default.span.withConfig({displayName:"cards__ComingSoonBadge",componentId:"sc-1rp0i6g-5"})(["align-self:flex-start;display:inline-flex;align-items:center;padding:0.25rem 0.625rem;border-radius:0.25rem;background:#ffeadd;color:#c75212;font-family:",";font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;"],e=>e.theme.fonts.montserrat.semibold),v=e=>{let{title:t,description:n,href:a,comingSoon:r,headingAs:o="h3"}=e;return r?s.createElement(y,null,s.createElement(w,null,"Coming soon"),s.createElement(p.Pz,{as:o,$margin:"0"},t),s.createElement(f,null,n)):s.createElement(h,{to:a},s.createElement(p.Pz,{as:o,$margin:"0"},t),s.createElement(f,null,n),s.createElement(b,null,"Open calculator →"))};var E=n(84889);const x=c.default.div.withConfig({displayName:"share__ShareSection",componentId:"sc-1hhapz7-0"})(["display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 2rem;padding:12px 16px;background:",";border-radius:0.625rem;"],e=>e.theme.colors.backgroundGrey),k=c.default.span.withConfig({displayName:"share__ShareLabel",componentId:"sc-1hhapz7-1"})(["font-family:",";font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:0.05em;margin-right:4px;"],e=>e.theme.fonts.lato.bold),S=c.default.a.withConfig({displayName:"share__ShareButton",componentId:"sc-1hhapz7-2"})(["display:inline-flex;align-items:center;gap:6px;padding:0.4rem 0.75rem;font-family:",";font-size:12px;color:#2d2926;background:#fff;border:1px solid #d9d9d9;border-radius:0.25rem;text-decoration:none;transition:all 0.15s ease;cursor:pointer;&:hover{border-color:#008380;color:#008380;}&:focus-visible{outline:2px solid #fd6300;outline-offset:2px;}svg{width:14px;
1height:14px;flex-shrink:0;}"],e=>e.theme.fonts.lato.bold),C=e=>"undefined"!=typeof navigator&&navigator.clipboard?navigator.clipboard.writeText(e):Promise.reject(),A=e=>{let{toolName:t,pageTitle:n,pageUrl:a,summaryText:r}=e;const[o,i]=s.useState(null),[l,c]=s.useState(!1);s.useEffect(()=>{"undefined"!=typeof navigator&&"function"==typeof navigator.share&&c(!0)},[]);const m=e=>{i(e),setTimeout(()=>i(null),2e3)},u=()=>"undefined"!=typeof window?window.location.href:a,p=encodeURIComponent("Summarize this page: "+a);return s.createElement(x,null,s.createElement(k,null,"Share"),s.createElement(S,{as:"button",type:"button",onClick:()=>{C(u()).then(()=>{m("link"),(0,E.mX)({toolName:t,method:"copy_link"})}).catch(()=>{})}},s.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false"},s.createElement("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),s.createElement("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})),"link"===o?"Copied!":"Copy link"),r&&s.createElement(S,{as:"button",type:"button",onClick:()=>{C(r+"\n"+u()).then(()=>{m("results"),(0,E.mX)({toolName:t,method:"copy_results"})}).catch(()=>{})}},s.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false"},s.createElement("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),s.createElement("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})),"results"===o?"Copied!":"Copy results"),s.createElement(S,{href:"https://chatgpt.com/?q="+p,target:"_blank",rel:"noopener noreferrer",onClick:()=>(0,E.mX)({toolName:t,method:"chatgpt"})},s.createElement("svg",{viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false"},s.createElement("path",{d:"M22.282 9.821a5.985 5.985 0 0 0-.516-4.91 6.046 6.046 0 0 0-6.51-2.9A6.065 6.065 0 0 0 4.981 4.18a5.985 5.985 0 0 0-3.998 2.9 6.046 6.046 0 0 0 .743 7.097 5.98 5.98 0 0 0 .51 4.911 6.051 6.051 0 0 0 6.515 2.9A5.985 5.985 0 0 0 13.26 24a6.056 6.056 0 0 0 5.772-4.206 5.99 5.99 0 0 0 3.997-2.9 6.056 6.056 0 0 0-.747-7.073zM13.26 22.43a4.476 4.476 0 0 1-2.876-1.04l.141-.081 4.779-2.758a.795.795 0 0 0 .392-.681v-6.737l2.02 1.168a.071.071 0 0 1 .038.052v5.583a4.504 4.504 0 0 1-4.494 4.494zM3.6 18.304a4.47 4.47 0 0 1-.535-3.014l.142.085 4.783 2.759a.771.771 0 0 0 .78 0l5.843-3.369v2.332a.08.08 0 0 1-.033.062L9.74 19.95a4.5 4.5 0 0 1-6.14-1.646zM2.34 7.896a4.485 4.485 0 0 1 2.366-1.973V11.6a.766.766 0 0 0 .388.676l5.815 3.355-2.02 1.168a.076.076 0 0 1-.071 0l-4.83-2.786A4.504 4.504 0 0 1 2.34 7.872zm16.597 3.855l-5.833-3.387L15.119 7.2a.076.076 0 0 1 .071 0l4.83 2.791a4.494 4.494 0 0 1-.676 8.105v-5.678a.79.79 0 0 0-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776 0 0 0-.785 0L9.409 9.23V6.897a.066.066 0 0 1 .028-.061l4.83-2.787a4.5 4.5 0 0 1 6.68 4.66zm-12.64 4.135l-2.02-1.164a.08.08 0 0 1-.038-.057V6.075a4.5 4.5 0 0 1 7.375-3.453l-.142.08L8.704 5.46a.795.795 0 0 0-.393.681zm1.097-2.365l2.602-1.5 2.607 1.5v2.999l-2.597 1.5-2.607-1.5z"})),"Open in ChatGPT"),s.createElement(S,{href:"https://www.perplexity.ai/search?q="+p,target:"_blank",rel:"noopener noreferrer",onClick:()=>(0,E.mX)({toolName:t,method:"perplexity"})},s.createElement("svg",{viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false"},s.createElement("path",{d:"M7.51 3.25V8.36L4.5 5.83V12.2l3.01 2.55v5.68l4.03-3.39v3.71l5.02-4.22v-3.37l2.94 2.42V7.19l-2.94 2.42V3.25l-5.02 4.22V3.75l-4.03 3.39V3.25zm.5 4.91v-2.8l3.03 2.55V5.79l4.02-3.38v6.26l-3.02 2.54v2.13L9.01 16.1v-3.47L6 10.05V7.16l2.01 1zm8.55 1.53v-2.5l1.94-1.6v4.92l-1.94-1.6v.78zm-4.52 6.06l3.02-2.54v2.13l-3.02 2.55v-2.14zm-4.53-3.34l2.01 1.7v2.78l-2.01 1.69v-6.17z"})),"Open in Perplexity"),l&&s.createElement(S,{as:"button",type:"button",onClick:()=>{navigator.share({title:n,url:u()}).then(()=>(0,E.mX)({toolName:t,method:"native_share"})).catch(()=>{})}},s.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false"},s.createElement("circle",{cx:"18",cy:"5",r:"3"}),s.createElement("circle",{cx:"6",cy:"12",r:"3"}),s.createElement("circle",{cx:"18",cy:"19",r:"3"}),s.createElement("path",{d:"m8.59 13.51 6.83 3.98M15.41 6.51l-6.82 3.98"})),"Share"))}},91647:function(e,t,n){n.d(t,{$:function(){return m},j:function(){return l}});var a=n(96540),r=n(7373),o=n(12092);function i(){if("undefined"==typeof window)return!1;const e=window.location.hostname;return"localhost"===e||"127.0.0.1"===e}function l(e){return!!e&&(e===r.DEFAULT_LANGUAGE||"en"===e||"en-us"===e||"en_US"===e)}function s(){if("undefined"==typeof window)return!1;const e=new URLSearchParams(window.location.search);if("1"===e.get("ukLanding"))return!0;const t=(e.get("geoCountry")||"").toLowerCase();return"gb"===t||"uk"===t}function c(e,t){return l(e)&&"default"===t}function m(e,t){const{0:n,1:r}=(0,a.useState)(!1),{0:l,1:m}=(0,a.useState)(()=>!c(e,t));return(0,a.useLayoutEffect)(()=>
1{if(!c(e,t))return r(!1),void m(!0);if(i()&&s())return r(!0),void m(!0);const n=(0,o.ei)();n&&(r("gb"===n),m(!0))},[e,t]),(0,a.useEffect)(()=>{let n=!1;if(c(e,t)&&!(i()&&s()||(0,o.ei)()))return(async()=>{const e=await(0,o.mZ)();n||(r("gb"===e),m(!0))})(),()=>{n=!0}},[e,t]),{isUkVisitor:n,isUkGeoResolved:l}}}}]);
2//# sourceMappingURL=component---src-pages-tools-rental-arbitrage-calculator-jsx-82cc928d9781d9bdcf5c.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.