{"id":45,"date":"2025-05-09T02:05:40","date_gmt":"2025-05-09T02:05:40","guid":{"rendered":"https:\/\/eatplayholiday.com\/comparecountries\/?p=45"},"modified":"2025-05-09T02:07:06","modified_gmt":"2025-05-09T02:07:06","slug":"stamp-duty-calculator","status":"publish","type":"post","link":"https:\/\/eatplayholiday.com\/comparecountries\/stamp-duty-calculator\/45\/","title":{"rendered":"Stamp Duty Calculator"},"content":{"rendered":"\n    <style>\n        \/* Calculator Styles *\/\n        .stamp-duty-calculator {\n            background-color: #f9f9f9;\n            padding: 20px;\n            border-radius: 8px;\n            border: 1px solid #ddd;\n            max-width: 500px;\n            margin: 20px auto; \/* Centers the calculator *\/\n            font-family: sans-serif;\n        }\n        .stamp-duty-calculator h3 {\n            margin-top: 0;\n            color: #333;\n            text-align: center;\n        }\n        .stamp-duty-calculator label {\n            display: block;\n            margin-top: 10px;\n            margin-bottom: 5px;\n            color: #555;\n        }\n        .stamp-duty-calculator input[type=\"number\"] {\n            width: calc(100% - 22px); \/* Full width minus padding and border *\/\n            padding: 10px;\n            margin-bottom: 10px;\n            border: 1px solid #ccc;\n            border-radius: 4px;\n            box-sizing: border-box;\n        }\n        .stamp-duty-calculator button {\n            background-color: #0073aa; \/* WordPress blue *\/\n            color: white;\n            padding: 10px 15px;\n            border: none;\n            border-radius: 4px;\n            cursor: pointer;\n            font-size: 16px;\n            display: block; \/* Make button take full width *\/\n            width: 100%;\n            margin-top: 15px;\n        }\n        .stamp-duty-calculator button:hover {\n            background-color: #005a87;\n        }\n        .stamp-duty-calculator .results {\n            margin-top: 20px;\n            padding-top: 15px;\n            border-top: 1px solid #eee;\n        }\n        .stamp-duty-calculator .results p {\n            margin: 8px 0;\n            color: #333;\n        }\n        .stamp-duty-calculator .results strong {\n            color: #000;\n        }\n        .stamp-duty-calculator .error-message {\n            color: red;\n            font-weight: bold;\n            margin-top: 10px;\n        }\n        .stamp-duty-calculator .disclaimer {\n            font-size: 0.9em;\n            color: #777;\n            margin-top: 20px;\n            line-height: 1.4;\n        }\n    <\/style>\n\n    <div class=\"stamp-duty-calculator\">\n        <h3>Malaysia Tenancy Agreement<\/br>\n    \t(2025 Rates)<\/h3>\n\n        <div>\n            <label for=\"monthlyRental\">Monthly Rental Amount (RM):<\/label>\n            <input type=\"number\" id=\"monthlyRental\" name=\"monthlyRental\" step=\"0.01\" placeholder=\"e.g., 1500\">\n        <\/div>\n\n        <div>\n            <label for=\"tenancyDuration\">Tenancy Duration (Years):<\/label>\n            <input type=\"number\" id=\"tenancyDuration\" name=\"tenancyDuration\" step=\"0.1\" placeholder=\"e.g., 1 or 1.5 or 2\">\n        <\/div>\n\n        <button onclick=\"handleCalculate()\">Calculate Stamp Duty<\/button>\n\n        <div class=\"results\" id=\"resultsArea\" style=\"display:none;\">\n            <h4>--- Calculation Results ---<\/h4>\n            <p>Monthly Rental Input: <strong id=\"resMonthlyRental\"><\/strong><\/p>\n            <p>Tenancy Duration Input: <strong id=\"resTenancyDuration\"><\/strong> year(s)<\/p>\n            <hr>\n            <p>Calculated Annual Rental: RM <strong id=\"resAnnualRental\"><\/strong><\/p>\n            <p>Applicable Rate: RM <strong id=\"resApplicableRate\"><\/strong> for every RM250 or part thereof<\/p>\n            <p>Taxable Value for Duty: RM <strong id=\"resTaxableValue\"><\/strong><\/p>\n            <hr>\n            <p><strong>Estimated Stamp Duty Payable: RM <strong id=\"resStampDutyPayable\" style=\"font-size: 1.2em;\"><\/strong><\/strong><\/p>\n        <\/div>\n        <div id=\"errorMessage\" class=\"error-message\"><\/div>\n\n        <div class=\"disclaimer\">\n            <p><strong>Note:<\/strong> This calculation is based on rates reportedly effective from January 1, 2025, and does not include fees for additional copies of the agreement (typically RM10 per copy). Always verify with official LHDN resources or a legal professional for definitive advice.<\/p>\n        <\/div>\n    <\/div>\n\n    <script>\n        function calculateRentalStampDutyMalaysia2025(monthlyRental, tenancyDurationYears) {\n            \/\/ Basic validation (should be enhanced for robustness)\n            if (isNaN(monthlyRental) || monthlyRental <= 0) {\n                return {\n                    error: \"Monthly rental must be a positive number.\",\n                    annual_rental_rm: 0.0,\n                    applicable_rate_rm_per_250: 0.0,\n                    taxable_value_for_duty_rm: 0.0,\n                    stamp_duty_payable_rm: 0.0\n                };\n            }\n\n            if (isNaN(tenancyDurationYears) || tenancyDurationYears <= 0) {\n                return {\n                    error: \"Tenancy duration must be a positive number of years.\",\n                    annual_rental_rm: (isNaN(monthlyRental) || monthlyRental <= 0) ? 0.0 : monthlyRental * 12,\n                    applicable_rate_rm_per_250: 0.0,\n                    taxable_value_for_duty_rm: 0.0,\n                    stamp_duty_payable_rm: 0.0\n                };\n            }\n\n            const annualRental = monthlyRental * 12;\n            let ratePer250 = 0.00;\n\n            if (tenancyDurationYears <= 1) {\n                ratePer250 = 1.00;\n            } else if (tenancyDurationYears <= 3) { \/\/ Exceeding 1 year but not exceeding 3 years\n                ratePer250 = 3.00;\n            } else if (tenancyDurationYears <= 5) { \/\/ Exceeding 3 years but not exceeding 5 years\n                ratePer250 = 5.00;\n            } else { \/\/ Exceeding 5 years or for an indefinite period\n                ratePer250 = 7.00;\n            }\n\n            const taxableValueForDuty = annualRental;\n            let stampDutyPayable = 0.0;\n\n            if (taxableValueForDuty > 0) {\n                stampDutyPayable = Math.ceil(taxableValueForDuty \/ 250) * ratePer250;\n            }\n\n            return {\n                error: null,\n                annual_rental_rm: parseFloat(annualRental.toFixed(2)),\n                applicable_rate_rm_per_250: ratePer250,\n                taxable_value_for_duty_rm: parseFloat(taxableValueForDuty.toFixed(2)),\n                stamp_duty_payable_rm: parseFloat(stampDutyPayable.toFixed(2))\n            };\n        }\n\n        function handleCalculate() {\n            \/\/ Get inputs\n            const monthlyRentalInput = document.getElementById('monthlyRental').value;\n            const tenancyDurationInput = document.getElementById('tenancyDuration').value;\n\n            \/\/ Clear previous results and errors\n            document.getElementById('resultsArea').style.display = 'none';\n            document.getElementById('errorMessage').innerText = '';\n\n            \/\/ Validate inputs before parsing\n            if (monthlyRentalInput === '' || tenancyDurationInput === '') {\n                document.getElementById('errorMessage').innerText = 'Both fields are required.';\n                return;\n            }\n\n            const monthlyRental = parseFloat(monthlyRentalInput);\n            const tenancyDurationYears = parseFloat(tenancyDurationInput);\n\n            if (isNaN(monthlyRental) || monthlyRental <= 0) {\n                 document.getElementById('errorMessage').innerText = 'Monthly rental must be a positive number.';\n                 return;\n            }\n            if (isNaN(tenancyDurationYears) || tenancyDurationYears <= 0) {\n                 document.getElementById('errorMessage').innerText = 'Tenancy duration must be a positive number.';\n                 return;\n            }\n\n\n            \/\/ Calculate\n            const result = calculateRentalStampDutyMalaysia2025(monthlyRental, tenancyDurationYears);\n\n            \/\/ Display results or error\n            if (result.error) {\n                document.getElementById('errorMessage').innerText = \"Error: \" + result.error;\n            } else {\n                document.getElementById('resMonthlyRental').innerText = `RM ${monthlyRental.toFixed(2)}`;\n                document.getElementById('resTenancyDuration').innerText = `${tenancyDurationYears}`;\n                document.getElementById('resAnnualRental').innerText = `${result.annual_rental_rm.toFixed(2)}`;\n                document.getElementById('resApplicableRate').innerText = `${result.applicable_rate_rm_per_250.toFixed(2)}`;\n                document.getElementById('resTaxableValue').innerText = `${result.taxable_value_for_duty_rm.toFixed(2)}`;\n                document.getElementById('resStampDutyPayable').innerText = `${result.stamp_duty_payable_rm.toFixed(2)}`;\n                document.getElementById('resultsArea').style.display = 'block';\n            }\n        }\n    <\/script>\n\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[9,52,50,51],"_links":{"self":[{"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/posts\/45"}],"collection":[{"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":0,"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"wp:attachment":[{"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eatplayholiday.com\/comparecountries\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}