{"id":4496,"date":"2026-04-04T20:26:18","date_gmt":"2026-04-04T20:26:18","guid":{"rendered":"https:\/\/mazurly.com\/?page_id=4496"},"modified":"2026-04-04T20:29:15","modified_gmt":"2026-04-04T20:29:15","slug":"surabaya","status":"publish","type":"page","link":"https:\/\/mazurly.com\/fr\/cost-of-living\/surabaya\/","title":{"rendered":"Cost of Living in Surabaya"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4496\" class=\"elementor elementor-4496\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4b0a688 e-flex e-con-boxed e-con e-parent\" data-id=\"4b0a688\" 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-1126d22 elementor-widget elementor-widget-html\" data-id=\"1126d22\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section id=\"mz-surabaya\">\n  <style>\n    #mz-surabaya{\n      --mz-text:#111827;\n      --mz-muted:#6b7280;\n      --mz-border:#e5e7eb;\n      --mz-row:#f8fafc;\n      --mz-row2:#ffffff;\n      --mz-accent:#7c3aed;\n      --mz-shadow: 0 14px 40px rgba(0,0,0,.12);\n      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n    }\n    #mz-surabaya .mz-container{ max-width:1160px; margin:0 auto; padding:0 12px 28px; }\n\n    #mz-surabaya .sr-only{\n      position:absolute!important;\n      width:1px;height:1px;\n      padding:0;margin:-1px;\n      overflow:hidden;clip:rect(0,0,0,0);\n      white-space:nowrap;border:0;\n    }\n\n    \/* HERO *\/\n    #mz-surabaya .mz-hero{\n      position:relative; border-radius:18px; overflow:hidden; margin-bottom:16px;\n      box-shadow: var(--mz-shadow);\n    }\n    #mz-surabaya .mz-hero img{\n      width:100%; height:300px; object-fit:cover; display:block;\n      filter:saturate(1.05) contrast(1.05);\n    }\n    #mz-surabaya .mz-hero:after{\n      content:\"\"; position:absolute; inset:0;\n      background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.60));\n    }\n    #mz-surabaya .mz-hero-content{\n      position:absolute; inset:0; display:flex; flex-direction:column;\n      align-items:center; justify-content:center; text-align:center;\n      padding:18px 16px; color:#fff; z-index:2;\n    }\n    #mz-surabaya .mz-hero h1{\n      margin:0; font-size:40px; letter-spacing:-0.02em;\n      text-shadow:0 8px 20px rgba(0,0,0,.45);\n    }\n    #mz-surabaya .mz-country{ margin-top:8px; font-size:18px; opacity:.9; }\n    #mz-surabaya .mz-updated{ margin-top:10px; font-size:12.5px; opacity:.85; }\n    @media (max-width:860px){ #mz-surabaya .mz-hero h1{ font-size:30px; } }\n\n    \/* CARD *\/\n    #mz-surabaya .mz-card{\n      background:#fff; border:1px solid var(--mz-border);\n      border-radius:16px; box-shadow:0 10px 24px rgba(0,0,0,.06);\n      overflow:hidden;\n    }\n    #mz-surabaya .mz-desc{ padding:18px; border-bottom:1px solid var(--mz-border); }\n    #mz-surabaya .mz-desc h2{ margin:0; font-size:18px; color:var(--mz-text); }\n    #mz-surabaya .mz-desc p{\n      margin-top:8px; color:var(--mz-muted);\n      font-size:14px; line-height:1.6; max-width:95ch;\n    }\n\n    \/* Switcher *\/\n    #mz-surabaya .mz-switch{\n      padding:12px 18px;\n      border-bottom:1px solid var(--mz-border);\n      display:flex; justify-content:space-between; align-items:center;\n      gap:12px; flex-wrap:wrap; background:#fff;\n    }\n    #mz-surabaya .mz-switch .mz-lefttxt{\n      color:var(--mz-muted); font-size:13.5px; line-height:1.5;\n    }\n    #mz-surabaya .mz-ratehint{ margin-left:8px; font-size:12px; opacity:.9; }\n    #mz-surabaya .mz-btns{ display:flex; gap:8px; flex-wrap:wrap; }\n    #mz-surabaya .mz-curbtn{\n      border-radius:999px; border:1px solid var(--mz-border); background:#fff;\n      padding:8px 10px; font-size:12px; font-weight:900; cursor:pointer;\n      color: var(--mz-text);\n      transition: transform .08s ease, border-color .2s ease, background .2s ease;\n      white-space:nowrap;\n    }\n    #mz-surabaya .mz-curbtn:hover{\n      border-color: rgba(124,58,237,.45);\n      transform: translateY(-1px);\n    }\n    #mz-surabaya .mz-curbtn.is-active{\n      border-color: rgba(124,58,237,.55);\n      background: rgba(124,58,237,.08);\n      color: rgba(124,58,237,.95);\n    }\n\n    \/* GRID *\/\n    #mz-surabaya .mz-grid{ display:grid; grid-template-columns:1fr 1fr; }\n    @media (max-width:860px){ #mz-surabaya .mz-grid{ grid-template-columns:1fr; } }\n    #mz-surabaya .mz-colblock{ border-right:1px solid var(--mz-border); }\n    @media (max-width:860px){\n      #mz-surabaya .mz-colblock{ border-right:0; }\n      #mz-surabaya .mz-colblock + .mz-colblock{ border-top:1px solid var(--mz-border); }\n    }\n\n    \/* ROWS *\/\n    #mz-surabaya .mz-row{\n      display:flex; justify-content:space-between; gap:14px;\n      padding:14px 18px; border-bottom:1px solid var(--mz-border);\n      background:var(--mz-row2);\n    }\n    #mz-surabaya .mz-row:nth-child(odd){ background:var(--mz-row); }\n    #mz-surabaya .mz-left{ display:flex; gap:10px; align-items:center; }\n    #mz-surabaya .mz-label{ font-weight:700; font-size:14px; color:var(--mz-text); }\n    #mz-surabaya .mz-value{ font-weight:800; font-size:14px; color:var(--mz-text); white-space:nowrap; }\n\n    \/* Insight *\/\n    #mz-surabaya .mz-insight{\n      padding:14px 18px; background:#fafafa; border-top:1px solid var(--mz-border);\n      font-size:13.5px; color:var(--mz-muted); line-height:1.55;\n    }\n\n    \/* Converter *\/\n    #mz-surabaya .mz-conv{\n      margin-top:18px; background:#fff; border:1px solid var(--mz-border);\n      border-radius:16px; box-shadow:0 10px 24px rgba(0,0,0,.06); overflow:hidden;\n    }\n    #mz-surabaya .mz-conv-head{ padding:16px 18px; border-bottom:1px solid var(--mz-border); }\n    #mz-surabaya .mz-conv-head h2{ margin:0; font-size:18px; color:var(--mz-text); }\n    #mz-surabaya .mz-conv-head p{ margin:8px 0 0 0; color:var(--mz-muted); font-size:14px; line-height:1.6; max-width:95ch; }\n    #mz-surabaya .mz-conv-body{ padding:16px 18px 18px; background:#0b0b12; color:#fff; }\n    #mz-surabaya .mz-conv-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; flex-wrap:wrap; margin-bottom:12px; }\n    #mz-surabaya .mz-ratebadge{\n      font-size:12px; font-weight:800; padding:8px 10px; border-radius:999px;\n      border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06); white-space:nowrap;\n    }\n    #mz-surabaya .mz-conv-grid{\n      display:grid;\n      grid-template-columns: 1fr 1fr 1fr auto;\n      gap:10px; align-items:end;\n    }\n    @media (max-width:920px){ #mz-surabaya .mz-conv-grid{ grid-template-columns:1fr 1fr; } }\n    @media (max-width:560px){ #mz-surabaya .mz-conv-grid{ grid-template-columns:1fr; } }\n    #mz-surabaya .mz-conv-body label{\n      font-size:12px; color:rgba(255,255,255,.75); display:block; margin-bottom:6px;\n    }\n    #mz-surabaya .mz-conv-body input, #mz-surabaya .mz-conv-body select{\n      width:100%; border-radius:12px; border:1px solid rgba(255,255,255,.18);\n      background:rgba(255,255,255,.06); color:#fff; padding:10px 12px; font-size:14px; outline:none;\n    }\n    #mz-surabaya .mz-conv-btn{\n      border-radius:12px; border:1px solid rgba(124,58,237,.55);\n      background:rgba(124,58,237,.22); color:#fff; font-weight:900;\n      padding:10px 14px; cursor:pointer; white-space:nowrap;\n    }\n    #mz-surabaya .mz-conv-result{\n      margin-top:12px; font-size:13px; color:rgba(255,255,255,.82);\n      display:flex; gap:10px; flex-wrap:wrap; align-items:center;\n    }\n    #mz-surabaya .mz-conv-result b{ color:#fff; }\n    #mz-surabaya .mz-asof{\n      font-size:12px; font-weight:800; padding:7px 10px; border-radius:999px;\n      border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);\n    }\n\n    \/* FAQ *\/\n    #mz-surabaya .mz-faq{\n      margin-top:18px; background:#fff; border:1px solid var(--mz-border);\n      border-radius:16px; box-shadow:0 10px 24px rgba(0,0,0,.06);\n    }\n    #mz-surabaya .mz-faq-head{ padding:16px 18px; border-bottom:1px solid var(--mz-border); }\n    #mz-surabaya .mz-faq-head h2{ margin:0; font-size:18px; color:var(--mz-text); }\n    #mz-surabaya details{ border-bottom:1px solid var(--mz-border); }\n    #mz-surabaya details:last-child{ border-bottom:0; }\n    #mz-surabaya summary{\n      cursor:pointer; list-style:none; padding:14px 18px; font-weight:700; font-size:14px;\n      display:flex; justify-content:space-between; align-items:center; gap:12px;\n    }\n    #mz-surabaya summary::-webkit-details-marker{ display:none; }\n    #mz-surabaya .mz-a{\n      padding:0 18px 14px 18px; font-size:14px; color:var(--mz-muted); line-height:1.6;\n    }\n    #mz-surabaya .mz-a p{ margin:0 0 10px 0; }\n    #mz-surabaya .mz-a p:last-child{ margin-bottom:0; }\n  <\/style>\n\n  <div class=\"mz-container\">\n\n    <!-- HERO -->\n    <div class=\"mz-hero\">\n      <img decoding=\"async\"\n        src=\"https:\/\/mazurly.com\/wp-content\/uploads\/2026\/04\/Surabaya-scaled.jpg\"\n        alt=\"Surabaya, Indonesia\"\n        loading=\"eager\"\n      \/>\n      <span class=\"sr-only\">Hero image<\/span>\n\n      <div class=\"mz-hero-content\">\n        <h1>Cost of Living in Surabaya<\/h1>\n        <div class=\"mz-country\">Indonesia<\/div>\n        <div class=\"mz-updated\">Last updated: April 2026<\/div>\n      <\/div>\n    <\/div>\n\n    <!-- COST CARD -->\n    <div class=\"mz-card\" id=\"mzSurabayaCard\">\n      <div class=\"mz-desc\">\n        <h2>Surabaya cost overview<\/h2>\n        <p>\n          Prices are shown in <b>IDR (Indonesian Rupiah)<\/b> by default. Switch to USD\/EUR for quick comparison, and use the converter below for major currencies.\n        <\/p>\n      <\/div>\n\n      <div class=\"mz-switch\" id=\"mzRates\"\n           data-idr-usd=\"0.00006211\"\n           data-idr-eur=\"0.00005390\"\n           data-asof=\"2026-04-05\">\n        <div class=\"mz-lefttxt\">\n          Showing prices in: <b id=\"mzCurLabel\">IDR Rp<\/b>\n          <span class=\"mz-ratehint\" id=\"mzRateHint\"><\/span>\n        <\/div>\n        <div class=\"mz-btns\">\n          <button class=\"mz-curbtn is-active\" type=\"button\" data-cur=\"IDR\">IDR Rp<\/button>\n          <button class=\"mz-curbtn\" type=\"button\" data-cur=\"USD\">USD $<\/button>\n          <button class=\"mz-curbtn\" type=\"button\" data-cur=\"EUR\">EUR \u20ac<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"mz-grid\" id=\"mzSurabayaGrid\">\n\n        <!-- LEFT -->\n        <div class=\"mz-colblock\">\n          <div class=\"mz-row\" data-idr=\"14248500\"><div class=\"mz-left\"><span>\ud83d\udcbc<\/span><span class=\"mz-label\">Cost of living for nomad<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"22813700\"><div class=\"mz-left\"><span>\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66<\/span><span class=\"mz-label\">Cost of living for family<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"6134500\"><div class=\"mz-left\"><span>\ud83c\udfe8<\/span><span class=\"mz-label\">Hotel (median price)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"4556300\"><div class=\"mz-left\"><span>\ud83c\udfe0<\/span><span class=\"mz-label\">1br studio rent in center<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"289190\"><div class=\"mz-left\"><span>\ud83c\udf19<\/span><span class=\"mz-label\">Hotel (median price)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ night<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"2431200\"><div class=\"mz-left\"><span>\ud83e\uddd1\u200d\ud83d\udcbb<\/span><span class=\"mz-label\">Coworking hot desk<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"7246\"><div class=\"mz-left\"><span>\ud83e\udd64<\/span><span class=\"mz-label\">Coca-Cola (0.3L)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span><\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"22814\"><div class=\"mz-left\"><span>\u2615<\/span><span class=\"mz-label\">Coffee in cafe<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span><\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"193361\"><div class=\"mz-left\"><span>\ud83d\udcf6<\/span><span class=\"mz-label\">Mobile data (~10GB)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n        <\/div>\n\n        <!-- RIGHT -->\n        <div class=\"mz-colblock\">\n          <div class=\"mz-row\" data-idr=\"9787900\"><div class=\"mz-left\"><span>\ud83e\uddf3<\/span><span class=\"mz-label\">Cost of living for expat<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"6515740\"><div class=\"mz-left\"><span>\ud83c\udfe1<\/span><span class=\"mz-label\">Cost of living for local<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"14377490\"><div class=\"mz-left\"><span>\ud83d\udecf\ufe0f<\/span><span class=\"mz-label\">Airbnb (median price)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ month<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"757891400\"><div class=\"mz-left\"><span>\ud83c\udfd8\ufe0f<\/span><span class=\"mz-label\">Median home price<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span><\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"466000\"><div class=\"mz-left\"><span>\ud83c\udf19<\/span><span class=\"mz-label\">Airbnb (median price)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ night<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"21218\"><div class=\"mz-left\"><span>\ud83c\udf7d\ufe0f<\/span><span class=\"mz-label\">Dinner<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span><\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"33169\"><div class=\"mz-left\"><span>\ud83c\udf7a<\/span><span class=\"mz-label\">Beer in cafe (0.5L)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span><\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"93762750\"><div class=\"mz-left\"><span>\ud83c\udfeb<\/span><span class=\"mz-label\">International school<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ year<\/div><\/div>\n          <div class=\"mz-row\" data-idr=\"16584\"><div class=\"mz-left\"><span>\ud83d\ude95<\/span><span class=\"mz-label\">Taxi price (avg trip ~3km\/2mi)<\/span><\/div><div class=\"mz-value\"><span class=\"mz-money\"><\/span> \/ trip<\/div><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"mz-insight\">\n        Surabaya is one of Indonesia\u2019s most practical big cities for long-term living: affordable, infrastructure-oriented, and more business-focused than lifestyle-driven. It suits remote workers and expats who value convenience and lower costs over a strong nomad social scene.\n      <\/div>\n    <\/div>\n\n    <!-- CONVERTER -->\n    <div class=\"mz-conv\">\n      <div class=\"mz-conv-head\">\n        <h2>Currency converter<\/h2>\n        <p>Convert budgets using the same manual rates as the flipper so the page always works reliably.<\/p>\n      <\/div>\n\n      <div class=\"mz-conv-body\">\n        <div class=\"mz-conv-top\">\n          <div class=\"mz-ratebadge\" id=\"mzRateBadge\">Rates: \u2014<\/div>\n        <\/div>\n\n        <div class=\"mz-conv-grid\">\n          <div>\n            <label for=\"mzAmt\">Amount<\/label>\n            <input id=\"mzAmt\" type=\"number\" inputmode=\"decimal\" value=\"10000000\" min=\"0\" step=\"1\" \/>\n          <\/div>\n\n          <div>\n            <label for=\"mzFrom\">From<\/label>\n            <select id=\"mzFrom\">\n              <option value=\"IDR\" selected>IDR \u2014 Indonesian Rupiah<\/option>\n              <option value=\"USD\">USD \u2014 US Dollar<\/option>\n              <option value=\"EUR\">EUR \u2014 Euro<\/option>\n            <\/select>\n          <\/div>\n\n          <div>\n            <label for=\"mzTo\">To<\/label>\n            <select id=\"mzTo\">\n              <option value=\"USD\" selected>USD \u2014 US Dollar<\/option>\n              <option value=\"IDR\">IDR \u2014 Indonesian Rupiah<\/option>\n              <option value=\"EUR\">EUR \u2014 Euro<\/option>\n            <\/select>\n          <\/div>\n\n          <button class=\"mz-conv-btn\" id=\"mzConvertBtn\" type=\"button\">Convert<\/button>\n        <\/div>\n\n        <div class=\"mz-conv-result\">\n          <span><b>Result:<\/b> <span id=\"mzResult\">\u2014<\/span><\/span>\n          <span class=\"mz-asof\" id=\"mzAsOf\">As of: \u2014<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- FAQ -->\n    <div class=\"mz-faq\">\n      <div class=\"mz-faq-head\"><h2>Frequently Asked Questions<\/h2><\/div>\n\n      <details open>\n        <summary>What is Surabaya, Indonesia known for?<\/summary>\n        <div class=\"mz-a\">\n          <p>Surabaya is known as Indonesia\u2019s second-largest city and a major economic hub. It\u2019s famous for its role in Indonesia\u2019s independence history, busy port, and strong local business environment rather than tourism.<\/p>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>How is it living in Surabaya as a digital nomad?<\/summary>\n        <div class=\"mz-a\">\n          <p>Living in Surabaya as a digital nomad is practical but not lifestyle-focused. The city offers good infrastructure, fast internet, and low living costs, but it lacks the social and coworking scene found in places like Bali.<\/p>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>Is English widely spoken in Surabaya?<\/summary>\n        <div class=\"mz-a\">\n          <p>English is not as widely spoken in Surabaya compared to tourist areas. You\u2019ll manage fine in malls, business settings, and with younger people, but basic Indonesian (Bahasa Indonesia) can be helpful for daily life.<\/p>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>Is Surabaya a good place for expats?<\/summary>\n        <div class=\"mz-a\">\n          <p>Yes \u2014 Surabaya can be a good place for expats who are focused on business or long-term living. It\u2019s affordable, less crowded than Jakarta, and offers a more local, authentic Indonesian experience.<\/p>\n        <\/div>\n      <\/details>\n\n      <details>\n        <summary>How affordable is Surabaya compared to other Indonesian cities?<\/summary>\n        <div class=\"mz-a\">\n          <p>Surabaya is one of the more affordable large cities in Indonesia. It\u2019s generally cheaper than Jakarta and significantly cheaper than Bali, especially for rent and everyday expenses.<\/p>\n        <\/div>\n      <\/details>\n    <\/div>\n\n    <script>\n      (function(){\n        const root = document.getElementById('mz-surabaya');\n        if(!root) return;\n\n        const ratesEl = root.querySelector('#mzRates');\n        const idrToUsd = parseFloat(ratesEl.getAttribute('data-idr-usd'));\n        const idrToEur = parseFloat(ratesEl.getAttribute('data-idr-eur'));\n        const asOf = ratesEl.getAttribute('data-asof') || '';\n\n        const btns = root.querySelectorAll('.mz-curbtn');\n        const curLabel = root.querySelector('#mzCurLabel');\n        const rateHint = root.querySelector('#mzRateHint');\n        const rows = root.querySelectorAll('#mzSurabayaGrid .mz-row');\n\n        function round2(n){ return Math.round(n * 100) \/ 100; }\n\n        function fmtIDR(n){\n          const v = Math.round(n);\n          return 'Rp ' + v.toLocaleString(undefined, { maximumFractionDigits:0 });\n        }\n        function fmtUSD(n){ return '$' + round2(n).toLocaleString(undefined, { maximumFractionDigits:2 }); }\n        function fmtEUR(n){ return '\u20ac' + round2(n).toLocaleString(undefined, { maximumFractionDigits:2 }); }\n\n        function renderHint(){\n          const parts = [];\n          if(!isNaN(idrToUsd)) parts.push(`1 IDR \u2248 ${idrToUsd.toFixed(8)} USD`);\n          if(!isNaN(idrToEur)) parts.push(`1 IDR \u2248 ${idrToEur.toFixed(8)} EUR`);\n          rateHint.textContent = parts.length ? `\u2022 ${parts.join(' \u2022 ')}${asOf ? ' \u2022 ' + asOf : ''}` : '';\n\n          const badge = root.querySelector('#mzRateBadge');\n          const asOfEl = root.querySelector('#mzAsOf');\n          if(badge){\n            badge.textContent = `Rates: 1 IDR = ${idrToUsd.toFixed(8)} USD \u2022 1 IDR = ${idrToEur.toFixed(8)} EUR`;\n          }\n          if(asOfEl){ asOfEl.textContent = 'As of: ' + (asOf || '\u2014'); }\n        }\n\n        function convertFromIDR(cur, idrVal){\n          if(cur === 'IDR') return idrVal;\n          if(cur === 'USD') return idrVal * idrToUsd;\n          if(cur === 'EUR') return idrVal * idrToEur;\n          return idrVal;\n        }\n\n        function renderTable(cur){\n          rows.forEach(r=>{\n            const idr = parseFloat(r.getAttribute('data-idr')||'0');\n            const out = r.querySelector('.mz-money');\n            if(!out) return;\n\n            if(cur === 'IDR'){ out.textContent = fmtIDR(idr); return; }\n            const v = convertFromIDR(cur, idr);\n\n            if(cur === 'USD') out.textContent = fmtUSD(v);\n            if(cur === 'EUR') out.textContent = fmtEUR(v);\n          });\n\n          if(cur === 'IDR') curLabel.textContent = 'IDR Rp';\n          if(cur === 'USD') curLabel.textContent = 'USD $';\n          if(cur === 'EUR') curLabel.textContent = 'EUR \u20ac';\n        }\n\n        function setActive(cur){\n          btns.forEach(b=>b.classList.toggle('is-active', b.dataset.cur === cur));\n          renderTable(cur);\n        }\n\n        const amtEl = root.querySelector('#mzAmt');\n        const fromEl = root.querySelector('#mzFrom');\n        const toEl = root.querySelector('#mzTo');\n        const resEl = root.querySelector('#mzResult');\n        const convBtn = root.querySelector('#mzConvertBtn');\n\n        function rate(from, to){\n          if(from === to) return 1;\n\n          if(from === 'IDR' && to === 'USD') return idrToUsd;\n          if(from === 'IDR' && to === 'EUR') return idrToEur;\n\n          if(from === 'USD' && to === 'IDR') return 1 \/ idrToUsd;\n          if(from === 'EUR' && to === 'IDR') return 1 \/ idrToEur;\n\n          if(from === 'USD' && to === 'EUR') return (1 \/ idrToUsd) * idrToEur;\n          if(from === 'EUR' && to === 'USD') return (1 \/ idrToEur) * idrToUsd;\n\n          return 1;\n        }\n\n        function fmtBy(code, value){\n          if(code === 'IDR') return fmtIDR(value);\n          if(code === 'USD') return fmtUSD(value);\n          if(code === 'EUR') return fmtEUR(value);\n          return String(value);\n        }\n\n        function renderConvert(){\n          const amt = parseFloat(amtEl.value || '0');\n          const from = fromEl.value;\n          const to = toEl.value;\n\n          if(isNaN(amt)) {\n            resEl.textContent = '\u2014';\n            return;\n          }\n\n          const out = amt * rate(from, to);\n          resEl.textContent = fmtBy(to, out);\n        }\n\n        btns.forEach(b => b.addEventListener('click', () => setActive(b.dataset.cur)));\n        amtEl.addEventListener('input', renderConvert);\n        fromEl.addEventListener('change', renderConvert);\n        toEl.addEventListener('change', renderConvert);\n        convBtn.addEventListener('click', renderConvert);\n\n        renderHint();\n        setActive('IDR');\n        renderConvert();\n      })();\n    <\/script>\n  <\/div>\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Hero image Cost of Living in Surabaya Indonesia Last updated: April 2026 Surabaya cost overview Prices are shown in IDR (Indonesian Rupiah) by default. Switch to USD\/EUR for quick comparison, and use the converter below for major currencies. Showing prices in: IDR Rp IDR Rp USD $ EUR \u20ac \ud83d\udcbcCost of living for nomad \/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3959,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4496","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cost of Living in Surabaya (2026)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mazurly.com\/fr\/cost-of-living\/surabaya\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cost of Living in Surabaya (2026)\" \/>\n<meta property=\"og:description\" content=\"Hero image Cost of Living in Surabaya Indonesia Last updated: April 2026 Surabaya cost overview Prices are shown in IDR (Indonesian Rupiah) by default. Switch to USD\/EUR for quick comparison, and use the converter below for major currencies. Showing prices in: IDR Rp IDR Rp USD $ EUR \u20ac \ud83d\udcbcCost of living for nomad \/ [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mazurly.com\/fr\/cost-of-living\/surabaya\/\" \/>\n<meta property=\"og:site_name\" content=\"Mazurly\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-04T20:29:15+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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/surabaya\\\/\",\"url\":\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/surabaya\\\/\",\"name\":\"Cost of Living in Surabaya (2026)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#website\"},\"datePublished\":\"2026-04-04T20:26:18+00:00\",\"dateModified\":\"2026-04-04T20:29:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/surabaya\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/surabaya\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/surabaya\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mazurly.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cost of Living\",\"item\":\"https:\\\/\\\/mazurly.com\\\/cost-of-living\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cost of Living in Surabaya\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#website\",\"url\":\"https:\\\/\\\/mazurly.com\\\/\",\"name\":\"Mazurly\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mazurly.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#organization\",\"name\":\"Mazurly\",\"url\":\"https:\\\/\\\/mazurly.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/mazurly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mazurly.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Mazurly-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/mazurly.com\\\/wp-content\\\/uploads\\\/2024\\\/12\\\/Mazurly-logo-1.png\",\"width\":350,\"height\":100,\"caption\":\"Mazurly\"},\"image\":{\"@id\":\"https:\\\/\\\/mazurly.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cost of Living in Surabaya (2026)","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:\/\/mazurly.com\/fr\/cost-of-living\/surabaya\/","og_locale":"fr_FR","og_type":"article","og_title":"Cost of Living in Surabaya (2026)","og_description":"Hero image Cost of Living in Surabaya Indonesia Last updated: April 2026 Surabaya cost overview Prices are shown in IDR (Indonesian Rupiah) by default. Switch to USD\/EUR for quick comparison, and use the converter below for major currencies. Showing prices in: IDR Rp IDR Rp USD $ EUR \u20ac \ud83d\udcbcCost of living for nomad \/ [&hellip;]","og_url":"https:\/\/mazurly.com\/fr\/cost-of-living\/surabaya\/","og_site_name":"Mazurly","article_modified_time":"2026-04-04T20:29:15+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mazurly.com\/cost-of-living\/surabaya\/","url":"https:\/\/mazurly.com\/cost-of-living\/surabaya\/","name":"Cost of Living in Surabaya (2026)","isPartOf":{"@id":"https:\/\/mazurly.com\/#website"},"datePublished":"2026-04-04T20:26:18+00:00","dateModified":"2026-04-04T20:29:15+00:00","breadcrumb":{"@id":"https:\/\/mazurly.com\/cost-of-living\/surabaya\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mazurly.com\/cost-of-living\/surabaya\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mazurly.com\/cost-of-living\/surabaya\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mazurly.com\/"},{"@type":"ListItem","position":2,"name":"Cost of Living","item":"https:\/\/mazurly.com\/cost-of-living\/"},{"@type":"ListItem","position":3,"name":"Cost of Living in Surabaya"}]},{"@type":"WebSite","@id":"https:\/\/mazurly.com\/#website","url":"https:\/\/mazurly.com\/","name":"Mazurly","description":"","publisher":{"@id":"https:\/\/mazurly.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mazurly.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/mazurly.com\/#organization","name":"Mazurly","url":"https:\/\/mazurly.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/mazurly.com\/#\/schema\/logo\/image\/","url":"https:\/\/mazurly.com\/wp-content\/uploads\/2024\/12\/Mazurly-logo-1.png","contentUrl":"https:\/\/mazurly.com\/wp-content\/uploads\/2024\/12\/Mazurly-logo-1.png","width":350,"height":100,"caption":"Mazurly"},"image":{"@id":"https:\/\/mazurly.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/4496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/comments?post=4496"}],"version-history":[{"count":4,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/4496\/revisions"}],"predecessor-version":[{"id":4500,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/4496\/revisions\/4500"}],"up":[{"embeddable":true,"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/pages\/3959"}],"wp:attachment":[{"href":"https:\/\/mazurly.com\/fr\/wp-json\/wp\/v2\/media?parent=4496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}