{"id":2170,"date":"2026-07-15T18:24:47","date_gmt":"2026-07-15T17:24:47","guid":{"rendered":"https:\/\/prevaux.ch\/?page_id=2170"},"modified":"2026-10-26T21:29:54","modified_gmt":"2026-10-26T21:29:54","slug":"rental-earnings-calculator","status":"publish","type":"page","link":"https:\/\/prevaux.ch\/fr\/rental-earnings-calculator\/","title":{"rendered":"Calculateur de revenus locatifs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2170\" class=\"elementor elementor-2170\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f743242 e-flex e-con-boxed e-con e-parent\" data-id=\"f743242\" data-element_type=\"container\" data-e-type=\"container\" id=\"rental-earnings-calculator\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ee4c95 elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"1ee4c95\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Rental Earnings Calculator<\/h1>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6a17c8d e-flex e-con-boxed e-con e-parent\" data-id=\"6a17c8d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-ab77ca3 e-con-full e-flex e-con e-child\" data-id=\"ab77ca3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b29fecf elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"b29fecf\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The <strong><span tabindex=\"0\" role=\"button\" data-url=\"ca:\/\/s?q=Tell_me_more_about_the_Rental_Earnings_Calculator\">Rental Earnings Calculator<\/span><\/strong> is a free, data\u2011driven tool designed for second\u2011home owners in Vaud or Valais who want to understand the <strong>earning potential<\/strong> of their property. It instantly estimates your <strong>annual net earnings<\/strong> based on real market prices, occupancy trends, and operating costs. Because chalets and apartments perform differently in the rental market, make sure you select the correct property type to receive an accurate projection. This tool helps owners make informed decisions, compare scenarios, and evaluate whether professional rental management could increase their returns.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cbb515c e-flex e-con-boxed e-con e-parent\" data-id=\"cbb515c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a71bf30 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"a71bf30\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Chalets<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e8dddd elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-spacer\" data-id=\"7e8dddd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-685962e elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"685962e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ff1759f elementor-widget elementor-widget-html\" data-id=\"ff1759f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"prevaux-calculator\" style=\"max-width:700px;margin:0 auto;font-family:'Montserrat',sans-serif;color:#000;\">\n\n  <!-- Size buttons -->\n  <div style=\"display:flex;justify-content:space-between;margin-bottom:24px;gap:8px;\">\n    <button class=\"size-btn\" data-size=\"50\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">50 sqm<\/button>\n    <button class=\"size-btn\" data-size=\"75\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">75 sqm<\/button>\n    <button class=\"size-btn\" data-size=\"100\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">100 sqm<\/button>\n    <button class=\"size-btn\" data-size=\"125\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">125 sqm<\/button>\n    <button class=\"size-btn\" data-size=\"150\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">150 sqm<\/button>\n  <\/div>\n\n  <!-- Weekly price slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Weekly selling price (CHF)<\/span>\n      <span id=\"price-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"price-slider\" type=\"range\" min=\"3060\" max=\"3740\" value=\"3400\" step=\"10\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span id=\"price-min\">\u2013<\/span>\n      <span id=\"price-max\">\u2013<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Occupancy slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Occupancy (weeks per year)<\/span>\n      <span id=\"weeks-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"weeks-slider\" type=\"range\" min=\"25\" max=\"32\" value=\"28\" step=\"1\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span>25 weeks<\/span>\n      <span>32 weeks<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Result card -->\n  <div style=\"border:1px solid #000;padding:20px;margin-top:8px;text-align:center;\">\n    <div style=\"font-size:14px;margin-bottom:8px;\">Estimated Net Earnings<\/div>\n    <div style=\"font-size:14px;margin-bottom:8px;\">(Includes Prevaux's 29% commission and OTAs fees)<\/div>\n    <br>\n    <div id=\"net-value\" style=\"font-size:22px;font-weight:600;margin-bottom:4px;\">\u2013<\/div>\n    <div id=\"net-percent\" style=\"font-size:14px;font-weight:500;color:#555;\">\u2013<\/div>\n  <\/div>\n  <div style=\"margin-top:12px;font-size:11px;line-height:1.5;color:#555;text-align:left;\">\n  The results provided by this Rental Earnings Calculator are estimates based on standard market assumptions.\n  Actual earnings vary depending on the specific characteristics of each property, its condition, location,\n  and the services required. Cleaning is included in Prevaux's commission. Variable utility and ownership costs \u2014 such as heating, electricity, water,\n  PPE fees, consumables, city tax, registration, insurance and general maintenance \u2014 are not included in this estimate. A detailed, personalised calculation\n  is always performed case by case as part of our professional assessment.\n<\/div>\n<\/div>\n\n<script>\n(function () {\n  var ROOT_ID = 'prevaux-calculator';\n\n  \/\/ cos = linen + towels as % of weekly price\n  var presets = {\n    50: { price: 2200, cos: 0.03409 },\n    75: { price: 2800, cos: 0.03214 },\n    100: { price: 3400, cos: 0.03235 },\n    125: { price: 4100, cos: 0.02927 },\n    150: { price: 5300, cos: 0.02830 }\n  };\n\n  var PREVAUX_PERCENT = 0.29;\n  var OTA_PERCENT = 0.13;\n\n  function formatCHF(value) {\n    return 'CHF ' + value.toLocaleString('de-CH', { maximumFractionDigits: 0 }).replace(\/\\s\/g, '\u2019');\n  }\n\n  function formatPercent(value) {\n    return (value * 100).toFixed(0) + ' %';\n  }\n\n  \/\/ Wires up one copy of the calculator (works even if the same block is on the page twice)\n  function setup(root) {\n    if (!root || root.getAttribute('data-ready') === '1') return;\n\n    var q = function (sel) { return root.querySelector(sel); };\n    var sizeButtons   = root.querySelectorAll('.size-btn');\n    var priceSlider   = q('#price-slider');\n    var priceDisplay  = q('#price-display');\n    var priceMinLabel = q('#price-min');\n    var priceMaxLabel = q('#price-max');\n    var weeksSlider   = q('#weeks-slider');\n    var weeksDisplay  = q('#weeks-display');\n    var netValueEl    = q('#net-value');\n    var netPercentEl  = q('#net-percent');\n\n    if (!sizeButtons.length || !priceSlider || !priceDisplay || !priceMinLabel || !priceMaxLabel ||\n        !weeksSlider || !weeksDisplay || !netValueEl || !netPercentEl) return;\n\n    root.setAttribute('data-ready', '1');\n\n    var currentSize = null;\n\n    function updatePriceRange() {\n      if (!currentSize) return;\n      var base = presets[currentSize].price;\n      var min  = Math.round(base * 0.90);\n      var max  = Math.round(base * 1.10);\n\n      priceSlider.min   = min;\n      priceSlider.max   = max;\n      priceSlider.value = base;\n\n      priceMinLabel.textContent = formatCHF(min);\n      priceMaxLabel.textContent = formatCHF(max);\n      priceDisplay.textContent  = formatCHF(base);\n\n      calculate();\n    }\n\n    function calculate() {\n      if (!currentSize) {\n        netValueEl.textContent   = '\u2013';\n        netPercentEl.textContent = '\u2013';\n        return;\n      }\n\n      var preset = presets[currentSize];\n      var price  = Number(priceSlider.value);\n      var weeks  = Number(weeksSlider.value);\n\n      priceDisplay.textContent = formatCHF(price);\n      weeksDisplay.textContent = weeks + ' weeks';\n\n      var revenueAnnual = price * weeks;\n\n      \/\/ Gross margin (revenue minus linen + towels)\n      var gmAnnual = (price - price * preset.cos) * weeks;\n\n      \/\/ OPEX: Prevaux commission + OTA fees only\n      var totalOpex = revenueAnnual * PREVAUX_PERCENT + revenueAnnual * OTA_PERCENT;\n\n      var netEarnings = gmAnnual - totalOpex;\n      var netPercent  = revenueAnnual > 0 ? (netEarnings \/ revenueAnnual) : 0;\n\n      netValueEl.textContent   = formatCHF(Math.round(netEarnings));\n      netPercentEl.textContent = formatPercent(netPercent);\n    }\n\n    Array.prototype.forEach.call(sizeButtons, function (btn) {\n      btn.addEventListener('click', function () {\n        Array.prototype.forEach.call(sizeButtons, function (b) {\n          b.style.background = '#fff';\n          b.style.color = '#000';\n        });\n        btn.style.background = '#000';\n        btn.style.color = '#fff';\n\n        currentSize = btn.getAttribute('data-size');\n        updatePriceRange();\n      });\n    });\n\n    priceSlider.addEventListener('input', calculate);\n    priceSlider.addEventListener('change', calculate);\n    weeksSlider.addEventListener('input', calculate);\n    weeksSlider.addEventListener('change', calculate);\n\n    var defaultBtn = root.querySelector('.size-btn[data-size=\"100\"]');\n    if (defaultBtn) defaultBtn.click();\n  }\n\n  function setupAll() {\n    var roots = document.querySelectorAll('[id=\"' + ROOT_ID + '\"]');\n    for (var i = 0; i < roots.length; i++) setup(roots[i]);\n  }\n\n  \/\/ Run now, again when the page is ready, and when the HTML is inserted later\n  setupAll();\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', setupAll);\n  window.addEventListener('load', setupAll);\n  if (window.MutationObserver) {\n    var observer = new MutationObserver(setupAll);\n    observer.observe(document.documentElement, { childList: true, subtree: true });\n    setTimeout(function () { observer.disconnect(); }, 30000);\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6a84a2b elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"6a84a2b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fedc3da elementor-widget elementor-widget-html\" data-id=\"fedc3da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"prevaux-calculator-apartment\" style=\"max-width:700px;margin:0 auto;font-family:'Montserrat',sans-serif;color:#000;\">\n\n  <!-- Size buttons -->\n  <div style=\"display:flex;justify-content:space-between;margin-bottom:24px;gap:8px;\">\n    <button class=\"apt-size-btn\" data-size=\"50\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">50 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"75\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">75 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"100\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">100 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"125\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">125 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"150\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">150 sqm<\/button>\n  <\/div>\n\n  <!-- Weekly price slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Weekly selling price (CHF)<\/span>\n      <span id=\"apt-price-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-price-slider\" type=\"range\" min=\"2430\" max=\"2970\" value=\"2700\" step=\"10\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span id=\"apt-price-min\">\u2013<\/span>\n      <span id=\"apt-price-max\">\u2013<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Occupancy slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Occupancy (weeks per year)<\/span>\n      <span id=\"apt-weeks-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-weeks-slider\" type=\"range\" min=\"25\" max=\"32\" value=\"28\" step=\"1\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span>25 weeks<\/span>\n      <span>32 weeks<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Result card -->\n  <div style=\"border:1px solid #000;padding:20px;margin-top:8px;text-align:center;\">\n    <div style=\"font-size:14px;margin-bottom:8px;\">Estimated Net Earnings<\/div>\n    <div style=\"font-size:14px;margin-bottom:8px;\">(Includes Prevaux's commission and OTAs fees)<\/div>\n    <br>\n    <div id=\"apt-net-value\" style=\"font-size:22px;font-weight:600;margin-bottom:4px;\">\u2013<\/div>\n    <div id=\"apt-net-percent\" style=\"font-size:14px;font-weight:500;color:#555;\">\u2013<\/div>\n  <\/div>\n\n  <p style=\"font-size:11px;margin-top:12px;line-height:1.4;\">\n    The results provided by this Rental Earnings Calculator are estimates based on standard market assumptions.\n    Actual earnings vary depending on the specific characteristics of each property, its condition, location,\n    and the services required. Cleaning is included in Prevaux's commission. Variable utility and ownership costs \u2014 such as heating, electricity, water,\n    PPE fees, consumables, city tax, registration, insurance and general maintenance \u2014 are not included in this estimate. A detailed, personalised calculation\n    is always performed case by case as part of our professional assessment.\n  <\/p>\n<\/div>\n\n<script>\n(function () {\n  var ROOT_ID = 'prevaux-calculator-apartment';\n\n  \/\/ cos = linen + towels as % of weekly price\n  var presets = {\n    50: { price: 1600, cos: 0.04688 },\n    75: { price: 2100, cos: 0.04286 },\n    100: { price: 2700, cos: 0.04074 },\n    125: { price: 3300, cos: 0.03636 },\n    150: { price: 3900, cos: 0.03846 }\n  };\n\n  var PREVAUX_PERCENT = 0.29;\n  var OTA_PERCENT = 0.13;\n\n  function formatCHF(value) {\n    return 'CHF ' + value.toLocaleString('de-CH', { maximumFractionDigits: 0 }).replace(\/\\s\/g, '\u2019');\n  }\n\n  function formatPercent(value) {\n    return (value * 100).toFixed(0) + ' %';\n  }\n\n  \/\/ Wires up one copy of the calculator (works even if the same block is on the page twice)\n  function setup(root) {\n    if (!root || root.getAttribute('data-ready') === '1') return;\n\n    var q = function (sel) { return root.querySelector(sel); };\n    var sizeButtons   = root.querySelectorAll('.apt-size-btn');\n    var priceSlider   = q('#apt-price-slider');\n    var priceDisplay  = q('#apt-price-display');\n    var priceMinLabel = q('#apt-price-min');\n    var priceMaxLabel = q('#apt-price-max');\n    var weeksSlider   = q('#apt-weeks-slider');\n    var weeksDisplay  = q('#apt-weeks-display');\n    var netValueEl    = q('#apt-net-value');\n    var netPercentEl  = q('#apt-net-percent');\n\n    if (!sizeButtons.length || !priceSlider || !priceDisplay || !priceMinLabel || !priceMaxLabel ||\n        !weeksSlider || !weeksDisplay || !netValueEl || !netPercentEl) return;\n\n    root.setAttribute('data-ready', '1');\n\n    var currentSize = null;\n\n    function updatePriceRange() {\n      if (!currentSize) return;\n      var base = presets[currentSize].price;\n      var min  = Math.round(base * 0.90);\n      var max  = Math.round(base * 1.10);\n\n      priceSlider.min   = min;\n      priceSlider.max   = max;\n      priceSlider.value = base;\n\n      priceMinLabel.textContent = formatCHF(min);\n      priceMaxLabel.textContent = formatCHF(max);\n      priceDisplay.textContent  = formatCHF(base);\n\n      calculate();\n    }\n\n    function calculate() {\n      if (!currentSize) {\n        netValueEl.textContent   = '\u2013';\n        netPercentEl.textContent = '\u2013';\n        return;\n      }\n\n      var preset = presets[currentSize];\n      var price  = Number(priceSlider.value);\n      var weeks  = Number(weeksSlider.value);\n\n      priceDisplay.textContent = formatCHF(price);\n      weeksDisplay.textContent = weeks + ' weeks';\n\n      var revenueAnnual = price * weeks;\n\n      \/\/ Gross margin (revenue minus linen + towels)\n      var gmAnnual = (price - price * preset.cos) * weeks;\n\n      \/\/ OPEX: Prevaux commission + OTA fees only\n      var totalOpex = revenueAnnual * PREVAUX_PERCENT + revenueAnnual * OTA_PERCENT;\n\n      var netEarnings = gmAnnual - totalOpex;\n      var netPercent  = revenueAnnual > 0 ? (netEarnings \/ revenueAnnual) : 0;\n\n      netValueEl.textContent   = formatCHF(Math.round(netEarnings));\n      netPercentEl.textContent = formatPercent(netPercent);\n    }\n\n    Array.prototype.forEach.call(sizeButtons, function (btn) {\n      btn.addEventListener('click', function () {\n        Array.prototype.forEach.call(sizeButtons, function (b) {\n          b.style.background = '#fff';\n          b.style.color = '#000';\n        });\n        btn.style.background = '#000';\n        btn.style.color = '#fff';\n\n        currentSize = btn.getAttribute('data-size');\n        updatePriceRange();\n      });\n    });\n\n    priceSlider.addEventListener('input', calculate);\n    priceSlider.addEventListener('change', calculate);\n    weeksSlider.addEventListener('input', calculate);\n    weeksSlider.addEventListener('change', calculate);\n\n    var defaultBtn = root.querySelector('.apt-size-btn[data-size=\"100\"]');\n    if (defaultBtn) defaultBtn.click();\n  }\n\n  function setupAll() {\n    var roots = document.querySelectorAll('[id=\"' + ROOT_ID + '\"]');\n    for (var i = 0; i < roots.length; i++) setup(roots[i]);\n  }\n\n  \/\/ Run now, again when the page is ready, and when the HTML is inserted later\n  setupAll();\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', setupAll);\n  window.addEventListener('load', setupAll);\n  if (window.MutationObserver) {\n    var observer = new MutationObserver(setupAll);\n    observer.observe(document.documentElement, { childList: true, subtree: true });\n    setTimeout(function () { observer.disconnect(); }, 30000);\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-744a5c3 e-flex e-con-boxed e-con e-parent\" data-id=\"744a5c3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c8e4c25 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"c8e4c25\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Apartments<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a06c24 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-spacer\" data-id=\"7a06c24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ec752e elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"0ec752e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cea4e7c elementor-widget elementor-widget-html\" data-id=\"cea4e7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"prevaux-calculator-apartment\" style=\"max-width:700px;margin:0 auto;font-family:'Montserrat',sans-serif;color:#000;\">\n\n  <!-- Apartment size buttons -->\n  <div style=\"display:flex;justify-content:space-between;margin-bottom:24px;gap:8px;\">\n    <button class=\"apt-size-btn\" data-size=\"50\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">50 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"75\"  style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">75 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"100\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">100 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"125\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">125 sqm<\/button>\n    <button class=\"apt-size-btn\" data-size=\"150\" style=\"flex:1;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">150 sqm<\/button>\n  <\/div>\n\n  <!-- Weekly price slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Weekly selling price (CHF)<\/span>\n      <span id=\"apt-price-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-price-slider\" type=\"range\" min=\"0\" max=\"0\" value=\"0\" step=\"10\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span id=\"apt-price-min\">\u2013<\/span>\n      <span id=\"apt-price-max\">\u2013<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Occupancy slider -->\n  <div style=\"margin-bottom:24px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Occupancy (weeks per year)<\/span>\n      <span id=\"apt-weeks-display\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-weeks-slider\" type=\"range\" min=\"25\" max=\"32\" value=\"28\" step=\"1\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span>25 weeks<\/span>\n      <span>32 weeks<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Result card -->\n  <div style=\"border:1px solid #000;padding:20px;margin-top:8px;text-align:center;\">\n    <div style=\"font-size:14px;margin-bottom:8px;\">Estimated Net Earnings<\/div>\n    <div style=\"font-size:14px;margin-bottom:8px;\">(Includes Prevaux's commission and OTAs fees)<\/div>\n    <br>\n    <div id=\"apt-net-value\" style=\"font-size:22px;font-weight:600;margin-bottom:4px;\">\u2013<\/div>\n    <div id=\"apt-net-percent\" style=\"font-size:14px;font-weight:500;color:#555;\">\u2013<\/div>\n  <\/div>\n\n  <p style=\"font-size:11px;margin-top:12px;line-height:1.4;\">\n    The results provided by this Rental Earnings Calculator are estimates based on standard market assumptions.\n    Actual earnings vary depending on the specific characteristics of each property, its condition, location, and the services required.\n    Cleaning is included in Prevaux's commission. Variable utility and ownership costs \u2014 such as heating, electricity, water, PPE fees, consumables, city tax, registration, insurance and general maintenance \u2014 are not included in this estimate.\n    A detailed, personalised calculation is always performed case by case as part of our professional assessment.\n  <\/p>\n<\/div>\n\n<script>\n(function() {\n  \/\/ cos = linen + towels as % of weekly price\n  const apartmentPresets = {\n    50:  { price: 1600, cos: 0.04688 },\n    75:  { price: 2100, cos: 0.04286 },\n    100: { price: 2700, cos: 0.04074 },\n    125: { price: 3300, cos: 0.03636 },\n    150: { price: 3900, cos: 0.03846 }\n  };\n\n  const PREVAUX_PERCENT = 0.29;\n  const OTA_PERCENT = 0.15;\n\n  let currentSize = null;\n\n  const sizeButtons   = document.querySelectorAll('#prevaux-calculator-apartment .apt-size-btn');\n  const priceSlider   = document.getElementById('apt-price-slider');\n  const priceDisplay  = document.getElementById('apt-price-display');\n  const priceMinLabel = document.getElementById('apt-price-min');\n  const priceMaxLabel = document.getElementById('apt-price-max');\n  const weeksSlider   = document.getElementById('apt-weeks-slider');\n  const weeksDisplay  = document.getElementById('apt-weeks-display');\n  const netValueEl    = document.getElementById('apt-net-value');\n  const netPercentEl  = document.getElementById('apt-net-percent');\n\n  function formatCHF(value) {\n    return 'CHF ' + value.toLocaleString('de-CH', { maximumFractionDigits: 0 }).replace(\/\\s\/g, '\u2019');\n  }\n\n  function formatPercent(value) {\n    return (value * 100).toFixed(0) + ' %';\n  }\n\n  function updatePriceRange() {\n    if (!currentSize) return;\n    const base = apartmentPresets[currentSize].price;\n    const min  = Math.round(base * 0.90);\n    const max  = Math.round(base * 1.10);\n\n    priceSlider.min   = min;\n    priceSlider.max   = max;\n    priceSlider.value = base;\n\n    priceMinLabel.textContent = formatCHF(min);\n    priceMaxLabel.textContent = formatCHF(max);\n    priceDisplay.textContent  = formatCHF(base);\n\n    calculate();\n  }\n\n  function calculate() {\n    if (!currentSize) {\n      netValueEl.textContent   = '\u2013';\n      netPercentEl.textContent = '\u2013';\n      return;\n    }\n\n    const preset = apartmentPresets[currentSize];\n    const price  = Number(priceSlider.value);\n    const weeks  = Number(weeksSlider.value);\n\n    priceDisplay.textContent = formatCHF(price);\n    weeksDisplay.textContent = weeks + ' weeks';\n\n    \/\/ Annual revenue\n    const revenueAnnual = price * weeks;\n\n    \/\/ Gross margin (revenue minus linen + towels)\n    const gmAnnual = (price - price * preset.cos) * weeks;\n\n    \/\/ OPEX: Prevaux commission + OTA fees only\n    const prevauxFee = revenueAnnual * PREVAUX_PERCENT;\n    const otaFee     = revenueAnnual * OTA_PERCENT;\n    const totalOpex  = prevauxFee + otaFee;\n\n    \/\/ Net Earnings (EBITDA) and % on revenue\n    const netEarnings = gmAnnual - totalOpex;\n    const netPercent  = revenueAnnual > 0 ? (netEarnings \/ revenueAnnual) : 0;\n\n    netValueEl.textContent   = formatCHF(Math.round(netEarnings));\n    netPercentEl.textContent = formatPercent(netPercent);\n  }\n\n  sizeButtons.forEach(btn => {\n    btn.addEventListener('click', () => {\n      sizeButtons.forEach(b => {\n        b.style.background = '#fff';\n        b.style.color = '#000';\n      });\n      btn.style.background = '#000';\n      btn.style.color = '#fff';\n\n      currentSize = btn.getAttribute('data-size');\n      updatePriceRange();\n    });\n  });\n\n  priceSlider.addEventListener('input', calculate);\n  weeksSlider.addEventListener('input', calculate);\n\n  \/\/ Default selection: 100 sqm\n  const defaultBtn = document.querySelector('#prevaux-calculator-apartment .apt-size-btn[data-size=\"100\"]');\n  if (defaultBtn) defaultBtn.click();\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-94952c7 elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"94952c7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8975f3 elementor-widget elementor-widget-html\" data-id=\"d8975f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"prevaux-calculator-apartment-mobile\" style=\"width:100%;max-width:700px;padding:0 12px;margin:0 auto;font-family:'Montserrat',sans-serif;color:#000;box-sizing:border-box;\">\n\n  <!-- Size buttons (first row: 50,75,100 \u2014 second row: 125,150) -->\n  <div style=\"display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;\">\n    <button class=\"apt-size-btn-mobile\" data-size=\"50\"  style=\"flex:1 1 30%;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">50 sqm<\/button>\n    <button class=\"apt-size-btn-mobile\" data-size=\"75\"  style=\"flex:1 1 30%;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">75 sqm<\/button>\n    <button class=\"apt-size-btn-mobile\" data-size=\"100\" style=\"flex:1 1 30%;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">100 sqm<\/button>\n\n    <button class=\"apt-size-btn-mobile\" data-size=\"125\" style=\"flex:1 1 48%;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">125 sqm<\/button>\n    <button class=\"apt-size-btn-mobile\" data-size=\"150\" style=\"flex:1 1 48%;padding:10px;border:1px solid #000;background:#fff;color:#000;cursor:pointer;\">150 sqm<\/button>\n  <\/div>\n\n  <!-- Weekly price slider -->\n  <div style=\"margin-bottom:16px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Weekly selling price (CHF)<\/span>\n      <span id=\"apt-price-display-mobile\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-price-slider-mobile\" type=\"range\" min=\"2430\" max=\"2970\" value=\"2700\" step=\"10\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span id=\"apt-price-min-mobile\">\u2013<\/span>\n      <span id=\"apt-price-max-mobile\">\u2013<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Occupancy slider -->\n  <div style=\"margin-bottom:16px;\">\n    <div style=\"display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;\">\n      <span style=\"font-size:14px;\">Occupancy (weeks per year)<\/span>\n      <span id=\"apt-weeks-display-mobile\" style=\"font-size:14px;font-weight:500;\">\u2013<\/span>\n    <\/div>\n    <input id=\"apt-weeks-slider-mobile\" type=\"range\" min=\"25\" max=\"32\" value=\"28\" step=\"1\"\n           style=\"width:100%;accent-color:#000;\">\n    <div style=\"display:flex;justify-content:space-between;font-size:12px;margin-top:4px;\">\n      <span>25 weeks<\/span>\n      <span>32 weeks<\/span>\n    <\/div>\n  <\/div>\n\n  <!-- Result card -->\n  <div style=\"border:1px solid #000;padding:16px;margin-top:8px;text-align:center;\">\n    <div style=\"font-size:13px;margin-bottom:6px;\">Estimated Net Earnings<\/div>\n    <div style=\"font-size:12px;margin-bottom:6px;\">(Includes Prevaux's commission and OTAs fees)<\/div>\n    <br>\n    <div id=\"apt-net-value-mobile\" style=\"font-size:20px;font-weight:600;margin-bottom:4px;\">\u2013<\/div>\n    <div id=\"apt-net-percent-mobile\" style=\"font-size:13px;font-weight:500;color:#555;\">\u2013<\/div>\n  <\/div>\n\n  <!-- Compact disclaimer -->\n  <div style=\"margin-top:10px;font-size:10px;line-height:1.4;color:#555;text-align:left;\">\n    Estimates based on standard market assumptions; actual earnings vary by property, condition, location and services required. Cleaning is included in Prevaux's commission. Utilities, consumables, city tax, registration, insurance and maintenance are not included. A personalised calculation is provided case by case.\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n  var ROOT_ID = 'prevaux-calculator-apartment-mobile';\n\n  \/\/ cos = linen + towels as % of weekly price\n  var presets = {\n    50: { price: 1600, cos: 0.04688 },\n    75: { price: 2100, cos: 0.04286 },\n    100: { price: 2700, cos: 0.04074 },\n    125: { price: 3300, cos: 0.03636 },\n    150: { price: 3900, cos: 0.03846 }\n  };\n\n  var PREVAUX_PERCENT = 0.29;\n  var OTA_PERCENT = 0.13;\n\n  function formatCHF(value) {\n    return 'CHF ' + value.toLocaleString('de-CH', { maximumFractionDigits: 0 }).replace(\/\\s\/g, '\u2019');\n  }\n\n  function formatPercent(value) {\n    return (value * 100).toFixed(0) + ' %';\n  }\n\n  \/\/ Wires up one copy of the calculator (works even if the same block is on the page twice)\n  function setup(root) {\n    if (!root || root.getAttribute('data-ready') === '1') return;\n\n    var q = function (sel) { return root.querySelector(sel); };\n    var sizeButtons   = root.querySelectorAll('.apt-size-btn-mobile');\n    var priceSlider   = q('#apt-price-slider-mobile');\n    var priceDisplay  = q('#apt-price-display-mobile');\n    var priceMinLabel = q('#apt-price-min-mobile');\n    var priceMaxLabel = q('#apt-price-max-mobile');\n    var weeksSlider   = q('#apt-weeks-slider-mobile');\n    var weeksDisplay  = q('#apt-weeks-display-mobile');\n    var netValueEl    = q('#apt-net-value-mobile');\n    var netPercentEl  = q('#apt-net-percent-mobile');\n\n    if (!sizeButtons.length || !priceSlider || !priceDisplay || !priceMinLabel || !priceMaxLabel ||\n        !weeksSlider || !weeksDisplay || !netValueEl || !netPercentEl) return;\n\n    root.setAttribute('data-ready', '1');\n\n    var currentSize = null;\n\n    function updatePriceRange() {\n      if (!currentSize) return;\n      var base = presets[currentSize].price;\n      var min  = Math.round(base * 0.90);\n      var max  = Math.round(base * 1.10);\n\n      priceSlider.min   = min;\n      priceSlider.max   = max;\n      priceSlider.value = base;\n\n      priceMinLabel.textContent = formatCHF(min);\n      priceMaxLabel.textContent = formatCHF(max);\n      priceDisplay.textContent  = formatCHF(base);\n\n      calculate();\n    }\n\n    function calculate() {\n      if (!currentSize) {\n        netValueEl.textContent   = '\u2013';\n        netPercentEl.textContent = '\u2013';\n        return;\n      }\n\n      var preset = presets[currentSize];\n      var price  = Number(priceSlider.value);\n      var weeks  = Number(weeksSlider.value);\n\n      priceDisplay.textContent = formatCHF(price);\n      weeksDisplay.textContent = weeks + ' weeks';\n\n      var revenueAnnual = price * weeks;\n\n      \/\/ Gross margin (revenue minus linen + towels)\n      var gmAnnual = (price - price * preset.cos) * weeks;\n\n      \/\/ OPEX: Prevaux commission + OTA fees only\n      var totalOpex = revenueAnnual * PREVAUX_PERCENT + revenueAnnual * OTA_PERCENT;\n\n      var netEarnings = gmAnnual - totalOpex;\n      var netPercent  = revenueAnnual > 0 ? (netEarnings \/ revenueAnnual) : 0;\n\n      netValueEl.textContent   = formatCHF(Math.round(netEarnings));\n      netPercentEl.textContent = formatPercent(netPercent);\n    }\n\n    Array.prototype.forEach.call(sizeButtons, function (btn) {\n      btn.addEventListener('click', function () {\n        Array.prototype.forEach.call(sizeButtons, function (b) {\n          b.style.background = '#fff';\n          b.style.color = '#000';\n        });\n        btn.style.background = '#000';\n        btn.style.color = '#fff';\n\n        currentSize = btn.getAttribute('data-size');\n        updatePriceRange();\n      });\n    });\n\n    priceSlider.addEventListener('input', calculate);\n    priceSlider.addEventListener('change', calculate);\n    weeksSlider.addEventListener('input', calculate);\n    weeksSlider.addEventListener('change', calculate);\n\n    var defaultBtn = root.querySelector('.apt-size-btn-mobile[data-size=\"100\"]');\n    if (defaultBtn) defaultBtn.click();\n  }\n\n  function setupAll() {\n    var roots = document.querySelectorAll('[id=\"' + ROOT_ID + '\"]');\n    for (var i = 0; i < roots.length; i++) setup(roots[i]);\n  }\n\n  \/\/ Run now, again when the page is ready, and when the HTML is inserted later\n  setupAll();\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', setupAll);\n  window.addEventListener('load', setupAll);\n  if (window.MutationObserver) {\n    var observer = new MutationObserver(setupAll);\n    observer.observe(document.documentElement, { childList: true, subtree: true });\n    setTimeout(function () { observer.disconnect(); }, 30000);\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-247fc01 e-flex e-con-boxed e-con e-parent\" data-id=\"247fc01\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3c9c8c elementor-widget elementor-widget-spacer\" data-id=\"e3c9c8c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6e2c5b3 elementor-hidden-desktop elementor-hidden-tablet e-con-full e-flex e-con e-parent\" data-id=\"6e2c5b3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bb92ce2 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"bb92ce2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The results provided by this Rental Earnings Calculator are estimates based on standard market assumptions. Actual earnings vary depending on the specific characteristics of each property, its condition, location, and the services required. Variable utility and ownership costs \u2014 such as heating, electricity, water, PPE fees, and general maintenance \u2014 are not included in this estimate. A detailed, personalised calculation is always performed case by case as part of our professional assessment. increase their returns.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b9a16ab e-flex e-con-boxed e-con e-parent\" data-id=\"b9a16ab\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7cebf43 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-spacer\" data-id=\"7cebf43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e486727 e-flex e-con-boxed e-con e-parent\" data-id=\"e486727\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-61751fe elementor-tablet-align-justify elementor-mobile-align-justify elementor-align-center elementor-widget-mobile__width-initial elementor-invisible elementor-widget elementor-widget-button\" data-id=\"61751fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wa.me\/41779127793\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Speak with us about your property\u2019s earning potential<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-74d922e e-flex e-con-boxed e-con e-parent\" data-id=\"74d922e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7578a61 elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-spacer\" data-id=\"7578a61\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ad1ac1 elementor-hidden-desktop elementor-hidden-tablet e-flex e-con-boxed e-con e-parent\" data-id=\"3ad1ac1\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7285ad7 elementor-widget elementor-widget-spacer\" data-id=\"7285ad7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d6e446e elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"d6e446e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3624af5 elementor-widget elementor-widget-spacer\" data-id=\"3624af5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Rental Earnings Calculator The Rental Earnings Calculator is a free, data\u2011driven tool designed for second\u2011home owners in Vaud or Valais who want to understand the earning potential of their property. It instantly estimates your annual net earnings based on real market prices, occupancy trends, and operating costs. Because chalets and apartments perform differently in the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2170","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rental Earnings Calculator for Second\u2011Homes in Vaud &amp; Valais<\/title>\n<meta name=\"description\" content=\"Get clear rental revenue estimates for chalets and apartments in Vaud &amp; Valais with Prevaux\u2019s premium earnings calculator.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prevaux.ch\/fr\/rental-earnings-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rental Earnings Calculator for Second\u2011Homes in Vaud &amp; Valais\" \/>\n<meta property=\"og:description\" content=\"Get clear rental revenue estimates for chalets and apartments in Vaud &amp; Valais with Prevaux\u2019s premium earnings calculator.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prevaux.ch\/fr\/rental-earnings-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"prevaux.ch\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T21:29:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/prevaux.ch\\\/rental-earnings-calculator\\\/\",\"url\":\"https:\\\/\\\/prevaux.ch\\\/rental-earnings-calculator\\\/\",\"name\":\"Rental Earnings Calculator for Second\u2011Homes in Vaud & Valais\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#website\"},\"datePublished\":\"2026-07-15T17:24:47+00:00\",\"dateModified\":\"2026-10-26T21:29:54+00:00\",\"description\":\"Get clear rental revenue estimates for chalets and apartments in Vaud & Valais with Prevaux\u2019s premium earnings calculator.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/prevaux.ch\\\/rental-earnings-calculator\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/prevaux.ch\\\/rental-earnings-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/prevaux.ch\\\/rental-earnings-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/prevaux.ch\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rental Earnings Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#website\",\"url\":\"https:\\\/\\\/prevaux.ch\\\/\",\"name\":\"Prevaux\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/prevaux.ch\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#organization\",\"name\":\"Prevaux\",\"url\":\"https:\\\/\\\/prevaux.ch\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/prevaux.ch\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Prevaux-Tagline-Logo-scaled.png\",\"contentUrl\":\"https:\\\/\\\/prevaux.ch\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Prevaux-Tagline-Logo-scaled.png\",\"width\":2560,\"height\":1920,\"caption\":\"Prevaux\"},\"image\":{\"@id\":\"https:\\\/\\\/prevaux.ch\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rental Earnings Calculator for Second\u2011Homes in Vaud & Valais","description":"Get clear rental revenue estimates for chalets and apartments in Vaud & Valais with Prevaux\u2019s premium earnings calculator.","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:\/\/prevaux.ch\/fr\/rental-earnings-calculator\/","og_locale":"fr_FR","og_type":"article","og_title":"Rental Earnings Calculator for Second\u2011Homes in Vaud & Valais","og_description":"Get clear rental revenue estimates for chalets and apartments in Vaud & Valais with Prevaux\u2019s premium earnings calculator.","og_url":"https:\/\/prevaux.ch\/fr\/rental-earnings-calculator\/","og_site_name":"prevaux.ch","article_modified_time":"2026-10-26T21:29:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prevaux.ch\/rental-earnings-calculator\/","url":"https:\/\/prevaux.ch\/rental-earnings-calculator\/","name":"Rental Earnings Calculator for Second\u2011Homes in Vaud & Valais","isPartOf":{"@id":"https:\/\/prevaux.ch\/#website"},"datePublished":"2026-07-15T17:24:47+00:00","dateModified":"2026-10-26T21:29:54+00:00","description":"Get clear rental revenue estimates for chalets and apartments in Vaud & Valais with Prevaux\u2019s premium earnings calculator.","breadcrumb":{"@id":"https:\/\/prevaux.ch\/rental-earnings-calculator\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prevaux.ch\/rental-earnings-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/prevaux.ch\/rental-earnings-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prevaux.ch\/"},{"@type":"ListItem","position":2,"name":"Rental Earnings Calculator"}]},{"@type":"WebSite","@id":"https:\/\/prevaux.ch\/#website","url":"https:\/\/prevaux.ch\/","name":"Prevaux","description":"","publisher":{"@id":"https:\/\/prevaux.ch\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prevaux.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/prevaux.ch\/#organization","name":"Prevaux","url":"https:\/\/prevaux.ch\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/prevaux.ch\/#\/schema\/logo\/image\/","url":"https:\/\/prevaux.ch\/wp-content\/uploads\/2026\/04\/Prevaux-Tagline-Logo-scaled.png","contentUrl":"https:\/\/prevaux.ch\/wp-content\/uploads\/2026\/04\/Prevaux-Tagline-Logo-scaled.png","width":2560,"height":1920,"caption":"Prevaux"},"image":{"@id":"https:\/\/prevaux.ch\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/pages\/2170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/comments?post=2170"}],"version-history":[{"count":156,"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/pages\/2170\/revisions"}],"predecessor-version":[{"id":2467,"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/pages\/2170\/revisions\/2467"}],"wp:attachment":[{"href":"https:\/\/prevaux.ch\/fr\/wp-json\/wp\/v2\/media?parent=2170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}