{"id":10324,"date":"2026-03-26T05:42:19","date_gmt":"2026-03-26T05:42:19","guid":{"rendered":"https:\/\/yourui2u.com\/Gatherklcc\/?page_id=10324"},"modified":"2026-03-26T08:24:02","modified_gmt":"2026-03-26T08:24:02","slug":"calculator","status":"publish","type":"page","link":"https:\/\/gatherklcc.com\/en\/calculator\/","title":{"rendered":"Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10324\" class=\"elementor elementor-10324\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b5302ff e-flex e-con-boxed e-con e-parent\" data-id=\"b5302ff\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d6204ed elementor-widget elementor-widget-html\" data-id=\"d6204ed\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<title>Legal Fee Calculator<\/title>\r\n\r\n<style>\r\nbody {\r\n    font-family: Arial;\r\n    background: #f5f7fb;\r\n    padding: 20px;\r\n}\r\n\r\n\/* Card Box *\/\r\n.card {\r\n    background: #fff;\r\n    padding: 25px;\r\n    margin-bottom: 25px;\r\n    border-radius: 12px;\r\n    box-shadow: 0 6px 18px rgba(0,0,0,0.08);\r\n    max-width: 800px;\r\n}\r\n\r\n\/* Title *\/\r\n.card h3 {\r\n    margin-bottom: 15px;\r\n    color: #333;\r\n}\r\n\r\n\/* Label + Input layout *\/\r\n.form-row {\r\n    display: flex;\r\n    align-items: center;\r\n    margin-bottom: 15px;\r\n}\r\n\r\n\/* Label *\/\r\n.form-row label {\r\n    width: 200px;\r\n    font-weight: 600;\r\n    color: #444;\r\n}\r\n\r\n\/* Input Style *\/\r\n.form-row input {\r\n    flex: 1;\r\n    padding: 10px 12px;\r\n    border: 1px solid #ccc;\r\n    border-radius: 8px;\r\n    font-size: 14px;\r\n    transition: all 0.25s ease;\r\n}\r\n\r\n\/* Input Focus Effect *\/\r\n.form-row input:focus {\r\n    border-color: #4CAF50;\r\n    outline: none;\r\n    box-shadow: 0 0 6px rgba(76, 175, 80, 0.3);\r\n    background: #fafffa;\r\n}\r\n\r\n\/* Button *\/\r\nbutton {\r\n    padding: 10px 16px;\r\n    margin-top: 10px;\r\n    cursor: pointer;\r\n    border: none;\r\n    border-radius: 8px;\r\n    background: #4CAF50;\r\n    color: white;\r\n    font-weight: 600;\r\n    transition: 0.2s;\r\n}\r\n\r\nbutton:hover {\r\n    background: #43a047;\r\n}\r\n\r\n\/* Result *\/\r\n.result {\r\n    margin-top: 12px;\r\n    font-weight: bold;\r\n    color: #2e7d32;\r\n    font-size: 25px;\r\n}\r\n\r\n\/* Radio *\/\r\n.radio-group {\r\n    margin-bottom: 15px;\r\n}\r\n\r\n.radio-group label {\r\n    margin-right: 15px;\r\n    font-weight: 500;\r\n}\r\n\r\n\/* ===== Responsive ===== *\/\r\n@media (max-width: 768px) {\r\n    .form-row {\r\n        flex-direction: column; \/* Stack label and input *\/\r\n        align-items: flex-start;\r\n    }\r\n\r\n    .form-row label {\r\n        width: 100%; \/* Full width label *\/\r\n        margin-bottom: 5px;\r\n    }\r\n\r\n    .form-row input {\r\n        width: 100%; \/* Full width input *\/\r\n    }\r\n\r\n    .card {\r\n        padding: 20px;\r\n    }\r\n    .result {\r\n        font-size: 20px;\r\n    }\r\n}\r\n<\/style>\r\n<\/head>\r\n\r\n<body>\r\n\r\n<!-- ================= SPA ================= -->\r\n<div class=\"card\">\r\n    <h3>Sales & Purchase Agreement (SPA) Legal Fee<\/h3>\r\n\r\n    <div class=\"form-row\">\r\n        <label>Property Price (RM) :<\/label>\r\n        <input type=\"number\" id=\"spaPrice\">\r\n    <\/div>\r\n    <p class=\"result\" id=\"spaResult\">Legal Fee: RM 0.00<\/p>\r\n<\/div>\r\n\r\n\r\n<!-- ================= TENANCY ================= -->\r\n<div class=\"card\">\r\n    <h3>Tenancy Agreement Legal Fee<\/h3>\r\n\r\n    <div class=\"form-row\">\r\n        <label>Monthly Rent (RM) :<\/label>\r\n        <input type=\"number\" id=\"rent\">\r\n    <\/div>\r\n\r\n    <div class=\"form-row\">\r\n        <label>Tenancy Years:<\/label>\r\n        <input type=\"number\" id=\"years\">\r\n    <\/div>\r\n    <p class=\"result\" id=\"tenancyResult\">Tenancy Fee: RM 0.00<\/p>\r\n<\/div>\r\n\r\n\r\n<!-- ================= STAMP DUTY ================= -->\r\n<div class=\"card\">\r\n    <h3>Memorandum of Transfer (MOT) \/ Property Purchase Stamp Duty<\/h3>\r\n\r\n    <div class=\"radio-group\">\r\n        <label><input type=\"radio\" name=\"type\" value=\"local\" checked> Local<\/label>\r\n        <label><input type=\"radio\" name=\"type\" value=\"foreigner\"> Foreigner<\/label>\r\n    <\/div>\r\n\r\n    <div class=\"form-row\">\r\n        <label>Property Value  (RM) :<\/label>\r\n        <input type=\"number\" id=\"motPrice\">\r\n    <\/div>\r\n    <p class=\"result\" id=\"motResult\">Stamp Duty: RM 0.00<\/p>\r\n<\/div>\r\n\r\n\r\n<script>\r\n\r\n\/* ================= FORMAT ================= *\/\r\nfunction format(num) {\r\n    return num.toLocaleString(\"en-MY\", {\r\n        minimumFractionDigits: 2,\r\n        maximumFractionDigits: 2\r\n    });\r\n}\r\n\r\n\r\n\/* ================= SPA ================= *\/\r\ndocument.getElementById(\"spaPrice\").addEventListener(\"input\", function() {\r\n    let price = parseFloat(this.value);\r\n    if (!price) {\r\n        document.getElementById(\"spaResult\").innerHTML = \"\";\r\n        return;\r\n    }\r\n\r\n    let fee = 0;\r\n    if (price <= 500000) {\r\n        fee = price * 0.0125;\r\n    } else if (price <= 7500000) {\r\n        fee = (500000 * 0.0125) + ((price - 500000) * 0.01);\r\n    } else {\r\n        fee = (500000 * 0.0125) + (7000000 * 0.01) + ((price - 7500000) * 0.01);\r\n    }\r\n    fee = Math.max(fee, 500);\r\n\r\n    document.getElementById(\"spaResult\").innerHTML =\r\n        \"Legal Fee: RM \" + format(fee);\r\n});\r\n\r\n\r\n\/* ================= TENANCY ================= *\/\r\nfunction calcTenancy() {\r\n    let rent = parseFloat(document.getElementById(\"rent\").value);\r\n    let years = parseFloat(document.getElementById(\"years\").value);\r\n    if (!rent || !years) {\r\n        document.getElementById(\"tenancyResult\").innerHTML = \"\";\r\n        return;\r\n    }\r\n\r\n    let totalRent = rent * years;\r\n    let fee = 0;\r\n\r\n    if (rent <= 10000) {\r\n        if (years <= 3) {\r\n            fee = totalRent * 0.30;\r\n            fee = Math.max(fee, 500);\r\n        } else {\r\n            fee = totalRent * 0.60;\r\n            fee = Math.max(fee, 1000);\r\n        }\r\n    } else {\r\n        fee = totalRent * 0.20;\r\n    }\r\n\r\n    document.getElementById(\"tenancyResult\").innerHTML =\r\n        \"Tenancy Fee: RM \" + format(fee);\r\n}\r\n\r\ndocument.getElementById(\"rent\").addEventListener(\"input\", calcTenancy);\r\ndocument.getElementById(\"years\").addEventListener(\"input\", calcTenancy);\r\n\r\n\r\n\/* ================= STAMP DUTY ================= *\/\r\nfunction calcMOT() {\r\n    let price = parseFloat(document.getElementById(\"motPrice\").value);\r\n    let type = document.querySelector('input[name=\"type\"]:checked').value;\r\n    if (!price) {\r\n        document.getElementById(\"motResult\").innerHTML = \"\";\r\n        return;\r\n    }\r\n\r\n    let duty = 0;\r\n    if (type === \"foreigner\") {\r\n        duty = price * 0.08;\r\n    } else {\r\n        if (price <= 100000) {\r\n            duty = price * 0.01;\r\n        } else if (price <= 500000) {\r\n            duty = (100000 * 0.01) + ((price - 100000) * 0.02);\r\n        } else if (price <= 1000000) {\r\n            duty = (100000 * 0.01) + (400000 * 0.02) + ((price - 500000) * 0.03);\r\n        } else {\r\n            duty = (100000 * 0.01) + (400000 * 0.02) + (500000 * 0.03) + ((price - 1000000) * 0.04);\r\n        }\r\n    }\r\n\r\n    document.getElementById(\"motResult\").innerHTML =\r\n        \"Stamp Duty: RM \" + format(duty);\r\n}\r\n\r\ndocument.getElementById(\"motPrice\").addEventListener(\"input\", calcMOT);\r\ndocument.querySelectorAll('input[name=\"type\"]').forEach(radio => {\r\n    radio.addEventListener(\"change\", calcMOT);\r\n});\r\n<\/script>\r\n\r\n<\/body>\r\n<\/html>\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>Legal Fee Calculator Sales &#038; Purchase Agreement (SPA) Legal Fee Property Price (RM) : Legal Fee: RM 0.00 Tenancy Agreement Legal Fee Monthly Rent (RM) : Tenancy Years: Tenancy Fee: RM 0.00 Memorandum of Transfer (MOT) \/ Property Purchase Stamp Duty Local Foreigner Property Value (RM) : Stamp Duty: RM 0.00<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-10324","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/pages\/10324","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/comments?post=10324"}],"version-history":[{"count":47,"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/pages\/10324\/revisions"}],"predecessor-version":[{"id":10382,"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/pages\/10324\/revisions\/10382"}],"wp:attachment":[{"href":"https:\/\/gatherklcc.com\/en\/wp-json\/wp\/v2\/media?parent=10324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}