{"id":1431,"date":"2026-07-17T21:11:49","date_gmt":"2026-07-17T11:11:49","guid":{"rendered":"https:\/\/out2china.com\/china-employment-cost-calculator\/"},"modified":"2026-07-18T01:12:03","modified_gmt":"2026-07-17T15:12:03","slug":"china-employment-cost-calculator","status":"publish","type":"post","link":"https:\/\/out2china.com\/zh\/china-employment-cost-calculator\/","title":{"rendered":"China Labor Cost Calculator \u2014 Employer Cost &#038; Take-Home at a Glance"},"content":{"rendered":"\n<style id=\"service-page-mode\">\n.postid-1431 #section-36-78{display:none!important}\n.postid-1431 #div_block-16-78{display:none!important}\n.postid-1431 #div_block-13-78{display:none!important}\n.postid-1431 #div_block-12-78{width:100%!important;max-width:100%!important;flex:1 1 100%!important}\n.postid-1431 #new_columns-11-78{display:block!important}\n.postid-1431 #headline-6-78{color:#0c4ba8;animation:ocRise .6s cubic-bezier(.16,1,.3,1) both}\n.postid-1431 #headline-6-78:after{content:\"\";display:block;width:110px;height:5px;border-radius:3px;background:linear-gradient(35deg,#4172c2,#bd4640);margin-top:14px;transform-origin:left;animation:ocGrow .7s .25s cubic-bezier(.16,1,.3,1) both}\n@keyframes ocRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}\n@keyframes ocGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}\n.postid-1431 #oc-slogan-card{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}\n.postid-1431 #oc-slogan-card:hover{transform:translateY(-4px);box-shadow:0 26px 56px rgba(31,56,100,.26)!important}\n@media (prefers-reduced-motion:reduce){.postid-1431 #headline-6-78,.postid-1431 #headline-6-78:after,.postid-1431 #oc-slogan-card{animation:none!important;transition:none!important}}\n<\/style>\n\n<div id=\"oc-slogan-card\" class=\"notranslate\" translate=\"no\" style=\"background:linear-gradient(35deg,#4172c2 0%,#4f63b2 38%,#8a5092 72%,#bd4640 100%);border-radius:18px;padding:26px 28px;margin:6px 0 2px;box-shadow:0 18px 40px rgba(31,56,100,.16)\"><div id=\"oc-slogan-h\" style=\"font-size:clamp(22px,3.2vw,30px);font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1.28\">Plan your China hiring budget with confidence.<\/div><div id=\"oc-slogan-s\" style=\"font-size:15px;color:#dbe3f3;margin-top:8px\">Enter a salary to see the complete <b style=\"color:#fff\">employer cost<\/b> and your <b style=\"color:#fff\">employee\u2019s take-home pay<\/b> \u2014 built on the official 2025\u201326 contribution rates for 13 major cities, maintained by our payroll &amp; compliance team. Free, no sign-up.<\/div><\/div>\n<script>(function(){var p=location.pathname,L=p.indexOf(\"\/zh_hk\/\")===0?\"hant\":(p.indexOf(\"\/zh\/\")===0?\"hans\":\"en\");var T={en:{l1:\"China Labor Cost Calculator\",l2:\"Employer Cost & Take-Home at a Glance\"},hans:{l1:\"\u4e2d\u56fd\u7528\u5de5\u6210\u672c\u8ba1\u7b97\u5668\",l2:\"\u96c7\u4e3b\u6210\u672c\u4e0e\u5458\u5de5\u5230\u624b,\u4e00\u76ee\u4e86\u7136\",slog:\"\u4ece\u5bb9\u89c4\u5212\u60a8\u7684\u4e2d\u56fd\u7528\u5de5\u9884\u7b97\u3002\",sub:\"\u8f93\u5165\u6708\u85aa,\u5373\u53ef\u67e5\u770b\u5b8c\u6574\u7684<b style=\\\"color:#fff\\\">\u96c7\u4e3b\u6210\u672c<\/b>\u4e0e<b style=\\\"color:#fff\\\">\u5458\u5de5\u5230\u624b\u5de5\u8d44<\/b>\u2014\u2014\u57fa\u4e8e 13 \u4e2a\u4e3b\u8981\u57ce\u5e02 2025\u201326 \u5e74\u5ea6\u5b98\u65b9\u7f34\u8d39\u8d39\u7387,\u7531\u6211\u4eec\u7684\u85aa\u916c\u5408\u89c4\u56e2\u961f\u6301\u7eed\u7ef4\u62a4\u3002\u514d\u8d39\u4f7f\u7528,\u65e0\u9700\u6ce8\u518c\u3002\",how:\"<h2>\u8ba1\u7b97\u5668\u7684\u5de5\u4f5c\u539f\u7406<\/h2><ul><li><strong>\u96c7\u4e3b\u6210\u672c<\/strong> = \u7a0e\u524d\u5de5\u8d44 + \u5355\u4f4d\u793e\u4fdd(\u517b\u8001\u3001\u533b\u7597\u3001\u5931\u4e1a\u3001\u5de5\u4f24\u3001\u751f\u80b2) + \u5355\u4f4d\u516c\u79ef\u91d1\u2014\u2014\u591a\u6570\u57ce\u5e02\u7ea6\u4e3a\u5de5\u8d44\u7684 <strong>30\u201340%<\/strong>\u3002<\/li><li><strong>\u5458\u5de5\u5230\u624b<\/strong> = \u7a0e\u524d\u5de5\u8d44 \u2212 \u4e2a\u4eba\u793e\u4fdd \u2212 \u4e2a\u4eba\u516c\u79ef\u91d1(\u672a\u6263\u4e2a\u4eba\u6240\u5f97\u7a0e)\u3002<\/li><li>\u8d39\u7387\u4e0e\u7f34\u8d39\u57fa\u6570\u5747\u4e3a\u5404\u5e02\u793e\u4fdd\u5c40\u516c\u5e03\u7684 <strong>2025\u201326 \u653f\u7b56\u5e74\u5ea6<\/strong>\u6570\u636e,\u542b\u6df1\u5733\u6237\u7c4d\u6863\u4f4d\u3001\u82cf\u5dde\u5de5\u4e1a\u56ed\u533a\u7b49\u7279\u6b8a\u53e3\u5f84\u3002<\/li><\/ul><p>\u60f3\u770b\u5b8c\u6574\u8d39\u7387\u8868\u4e0e\u65b9\u6cd5\u8bf4\u660e?\u8bf7\u9605\u8bfb\u8be6\u7ec6\u6307\u5357:<a href='\/china-social-insurance-and-housing-provident-fund-calculator\/'>\u4e2d\u56fd\u793e\u4fdd\u4e0e\u4f4f\u623f\u516c\u79ef\u91d1\u8ba1\u7b97\u5668(2026 \u66f4\u65b0\u7248)<\/a>\u3002<\/p>\",faq:\"<h2>\u5e38\u89c1\u95ee\u9898<\/h2><h3>\u5728\u4e2d\u56fd\u96c7\u4e00\u540d\u5458\u5de5\u5230\u5e95\u8981\u82b1\u591a\u5c11\u94b1?<\/h3><p>\u4e00\u822c\u9700\u5728\u7a0e\u524d\u5de5\u8d44\u4e4b\u4e0a\u518d\u9884\u7b97\u7ea6 <strong>30\u201340%<\/strong>\u3002\u4f8b\u5982\u5728\u5317\u4eac\u53d1 \u00a515,000 \u6708\u85aa,\u52a0\u4e0a\u6cd5\u5b9a\u793e\u4fdd\u4e0e\u516c\u79ef\u91d1\u540e,\u96c7\u4e3b\u5b9e\u9645\u6708\u6210\u672c\u7ea6 \u00a519,725(2025\u201326 \u8d39\u7387)\u3002<\/p><h3>\u96c7\u4e3b\u8981\u5728\u5de5\u8d44\u4e4b\u5916\u7f34\u7eb3\u54ea\u4e9b\u8d39\u7528?<\/h3><p>\u4e94\u9879\u6cd5\u5b9a\u4fdd\u9669\u2014\u2014\u517b\u8001(16%)\u3001\u533b\u7597(\u7ea6 9\u201310%)\u3001\u5931\u4e1a\u3001\u5de5\u4f24\u3001\u751f\u80b2\u2014\u2014\u518d\u52a0\u4f4f\u623f\u516c\u79ef\u91d1(5%\u201312%,\u534f\u5546\u786e\u5b9a)\u3002\u5177\u4f53\u8d39\u7387\u4e0e\u57fa\u6570\u56e0\u57ce\u5e02\u800c\u5f02\u3002<\/p><h3>\u5458\u5de5\u7a0e\u524d\u5de5\u8d44\u80fd\u5230\u624b\u591a\u5c11?<\/h3><p>\u6263\u9664\u4e2a\u4eba\u793e\u4fdd\u4e0e\u516c\u79ef\u91d1\u540e,\u901a\u5e38\u4e3a\u7a0e\u524d\u5de5\u8d44\u7684 <strong>84\u201390%<\/strong>(\u672a\u6263\u4e2a\u7a0e);\u4e2a\u7a0e\u91d1\u989d\u53d6\u51b3\u4e8e\u4e2a\u4eba\u4e13\u9879\u6263\u9664\u3002<\/p><h3>\u5404\u57ce\u5e02\u7684\u8d39\u7387\u4e00\u6837\u5417?<\/h3><p>\u4e0d\u4e00\u6837\u3002\u5404\u5e02\u81ea\u884c\u8bbe\u5b9a\u7f34\u8d39\u57fa\u6570\u4e0e\u90e8\u5206\u8d39\u7387\u2014\u2014\u6df1\u5733\u6709\u6237\u7c4d\u6863\u4f4d\u3001\u82cf\u5dde\u5de5\u4e1a\u56ed\u533a\u6709\u4e13\u5c5e\u533b\u7597\u8d39\u7387,\u4e14\u5404\u5e02\u6bcf\u5e74 7 \u6708\u8c03\u6574\u57fa\u6570\u4e0a\u4e0b\u9650\u3002\u672c\u8ba1\u7b97\u5668\u8986\u76d6 13 \u4e2a\u4e3b\u8981\u57ce\u5e02\u7684 2025\u201326 \u5e74\u5ea6\u6570\u636e\u3002<\/p>\"},hant:{l1:\"\u4e2d\u570b\u7528\u5de5\u6210\u672c\u8a08\u7b97\u5668\",l2:\"\u50f1\u4e3b\u6210\u672c\u8207\u54e1\u5de5\u5230\u624b,\u4e00\u76ee\u4e86\u7136\",slog:\"\u5f9e\u5bb9\u898f\u5283\u60a8\u7684\u4e2d\u570b\u7528\u5de5\u9810\u7b97\u3002\",sub:\"\u8f38\u5165\u6708\u85aa,\u5373\u53ef\u67e5\u770b\u5b8c\u6574\u7684<b style=\\\"color:#fff\\\">\u50f1\u4e3b\u6210\u672c<\/b>\u8207<b style=\\\"color:#fff\\\">\u54e1\u5de5\u5230\u624b\u5de5\u8cc7<\/b>\u2014\u2014\u57fa\u65bc 13 \u500b\u4e3b\u8981\u57ce\u5e02 2025\u201326 \u5e74\u5ea6\u5b98\u65b9\u7e73\u8cbb\u8cbb\u7387,\u7531\u6211\u5011\u7684\u85aa\u916c\u5408\u898f\u5718\u968a\u6301\u7e8c\u7dad\u8b77\u3002\u514d\u8cbb\u4f7f\u7528,\u7121\u9700\u8a3b\u518a\u3002\",how:\"<h2>\u8a08\u7b97\u5668\u7684\u5de5\u4f5c\u539f\u7406<\/h2><ul><li><strong>\u50f1\u4e3b\u6210\u672c<\/strong> = \u7a05\u524d\u5de5\u8cc7 + \u55ae\u4f4d\u793e\u4fdd(\u990a\u8001\u3001\u91ab\u7642\u3001\u5931\u696d\u3001\u5de5\u50b7\u3001\u751f\u80b2) + \u55ae\u4f4d\u516c\u7a4d\u91d1\u2014\u2014\u591a\u6578\u57ce\u5e02\u7d04\u70ba\u5de5\u8cc7\u7684 <strong>30\u201340%<\/strong>\u3002<\/li><li><strong>\u54e1\u5de5\u5230\u624b<\/strong> = \u7a05\u524d\u5de5\u8cc7 \u2212 \u500b\u4eba\u793e\u4fdd \u2212 \u500b\u4eba\u516c\u7a4d\u91d1(\u672a\u6263\u500b\u4eba\u6240\u5f97\u7a05)\u3002<\/li><li>\u8cbb\u7387\u8207\u7e73\u8cbb\u57fa\u6578\u5747\u70ba\u5404\u5e02\u793e\u4fdd\u5c40\u516c\u5e03\u7684 <strong>2025\u201326 \u653f\u7b56\u5e74\u5ea6<\/strong>\u6578\u64da,\u542b\u6df1\u5733\u6236\u7c4d\u6a94\u4f4d\u3001\u8607\u5dde\u5de5\u696d\u5712\u5340\u7b49\u7279\u6b8a\u53e3\u5f91\u3002<\/li><\/ul><p>\u60f3\u770b\u5b8c\u6574\u8cbb\u7387\u8868\u8207\u65b9\u6cd5\u8aaa\u660e?\u8acb\u95b1\u8b80\u8a73\u7d30\u6307\u5357:<a href='\/china-social-insurance-and-housing-provident-fund-calculator\/'>\u4e2d\u570b\u793e\u4fdd\u8207\u4f4f\u623f\u516c\u7a4d\u91d1\u8a08\u7b97\u5668(2026 \u66f4\u65b0\u7248)<\/a>\u3002<\/p>\",faq:\"<h2>\u5e38\u898b\u554f\u984c<\/h2><h3>\u5728\u4e2d\u570b\u50f1\u4e00\u540d\u54e1\u5de5\u5230\u5e95\u8981\u82b1\u591a\u5c11\u9322?<\/h3><p>\u4e00\u822c\u9700\u5728\u7a05\u524d\u5de5\u8cc7\u4e4b\u4e0a\u518d\u9810\u7b97\u7d04 <strong>30\u201340%<\/strong>\u3002\u4f8b\u5982\u5728\u5317\u4eac\u767c \u00a515,000 \u6708\u85aa,\u52a0\u4e0a\u6cd5\u5b9a\u793e\u4fdd\u8207\u516c\u7a4d\u91d1\u5f8c,\u50f1\u4e3b\u5be6\u969b\u6708\u6210\u672c\u7d04 \u00a519,725(2025\u201326 \u8cbb\u7387)\u3002<\/p><h3>\u50f1\u4e3b\u8981\u5728\u5de5\u8cc7\u4e4b\u5916\u7e73\u7d0d\u54ea\u4e9b\u8cbb\u7528?<\/h3><p>\u4e94\u9805\u6cd5\u5b9a\u4fdd\u96aa\u2014\u2014\u990a\u8001(16%)\u3001\u91ab\u7642(\u7d04 9\u201310%)\u3001\u5931\u696d\u3001\u5de5\u50b7\u3001\u751f\u80b2\u2014\u2014\u518d\u52a0\u4f4f\u623f\u516c\u7a4d\u91d1(5%\u201312%,\u5354\u5546\u78ba\u5b9a)\u3002\u5177\u9ad4\u8cbb\u7387\u8207\u57fa\u6578\u56e0\u57ce\u5e02\u800c\u7570\u3002<\/p><h3>\u54e1\u5de5\u7a05\u524d\u5de5\u8cc7\u80fd\u5230\u624b\u591a\u5c11?<\/h3><p>\u6263\u9664\u500b\u4eba\u793e\u4fdd\u8207\u516c\u7a4d\u91d1\u5f8c,\u901a\u5e38\u70ba\u7a05\u524d\u5de5\u8cc7\u7684 <strong>84\u201390%<\/strong>(\u672a\u6263\u500b\u7a05);\u500b\u7a05\u91d1\u984d\u53d6\u6c7a\u65bc\u500b\u4eba\u5c08\u9805\u6263\u9664\u3002<\/p><h3>\u5404\u57ce\u5e02\u7684\u8cbb\u7387\u4e00\u6a23\u55ce?<\/h3><p>\u4e0d\u4e00\u6a23\u3002\u5404\u5e02\u81ea\u884c\u8a2d\u5b9a\u7e73\u8cbb\u57fa\u6578\u8207\u90e8\u5206\u8cbb\u7387\u2014\u2014\u6df1\u5733\u6709\u6236\u7c4d\u6a94\u4f4d\u3001\u8607\u5dde\u5de5\u696d\u5712\u5340\u6709\u5c08\u5c6c\u91ab\u7642\u8cbb\u7387,\u4e14\u5404\u5e02\u6bcf\u5e74 7 \u6708\u8abf\u6574\u57fa\u6578\u4e0a\u4e0b\u9650\u3002\u672c\u8a08\u7b97\u5668\u8986\u84cb 13 \u500b\u4e3b\u8981\u57ce\u5e02\u7684 2025\u201326 \u5e74\u5ea6\u6578\u64da\u3002<\/p>\"}}[L];function setH(){var h=document.getElementById(\"headline-6-78\")||document.querySelector(\"h1.ct-headline\");if(h){h.classList.add(\"notranslate\");h.setAttribute(\"translate\",\"no\");h.innerHTML=T.l1+\"<br>\"+\"<span style=\\\"display:block;font-size:.58em;font-weight:600;color:#6B7A90;margin-top:6px;letter-spacing:0\\\">\"+T.l2+\"<\/span>\";}if(L!==\"en\"){document.title=T.l1+\",\"+T.l2+\" - Out2China\";}}setH();setTimeout(setH,800);setTimeout(setH,2500);function setZ(){if(L===\"en\")return;var a=document.getElementById(\"oc-slogan-h\"),b=document.getElementById(\"oc-slogan-s\");if(a)a.textContent=T.slog;if(b)b.innerHTML=T.sub;var w=document.getElementById(\"oc-how\");if(w)w.innerHTML=T.how;var f=document.getElementById(\"calc-faq\");if(f)f.innerHTML=T.faq;}setZ();document.addEventListener(\"DOMContentLoaded\",setZ);setTimeout(setZ,800);setTimeout(setZ,2500);})();<\/script><style>#o2c-calc .oc-title,#o2c-calc .oc-cities{display:none}#o2c-calc{margin-top:14px}<\/style>\n<style>\n\/* \u2550\u2550\u2550 Out2China Cost Calculator v2 \u2014 scoped under .o2c-calc \u2550\u2550\u2550 *\/\n.o2c-calc{--oc-navy:#0c4ba8;--oc-navy-d:#063a87;--oc-blue:#0053c8;--oc-blue-l:#e7f0fb;--oc-red:#ce4847;--oc-red-l:#fcebee;--oc-green:#1aa06a;--oc-ink:#22344E;--oc-mut:#6B7A90;--oc-line:#dde5ee;--oc-bg:#eef3fb;--oc-card:#fff;--oc-sh:0 1px 2px rgba(31,56,100,.04),0 6px 20px rgba(31,56,100,.05);\n  margin:28px auto;max-width:960px;color:var(--oc-ink);font-size:15px;line-height:1.55}\n.o2c-calc *{box-sizing:border-box}\n.o2c-calc h2.oc-title{font-size:26px;line-height:1.25;margin:0 0 6px;font-weight:800}\n.o2c-calc .oc-cities{font-size:12.5px;color:var(--oc-mut);margin:0 0 18px}\n\/* \u2500\u2500 inputs \u2500\u2500 *\/\n.o2c-calc .ctrl-panel{background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(255,255,255,.92);border-radius:18px;padding:20px 22px;box-shadow:var(--oc-sh),inset 0 1px 0 rgba(255,255,255,.92)}\n.o2c-calc .ctrl-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}\n.o2c-calc .field label{display:block;font-size:12px;font-weight:600;color:var(--oc-mut);margin-bottom:6px;letter-spacing:.01em}\n.o2c-calc .field select,.o2c-calc .field input[type=number]{width:100%;padding:11px 12px;border:1.5px solid var(--oc-line);border-radius:9px;font-size:15px;color:var(--oc-ink);background:#fff;font-family:inherit}\n.o2c-calc .field select:focus,.o2c-calc .field input:focus{outline:none;border-color:var(--oc-navy);box-shadow:0 0 0 3px rgba(12,75,168,.12)}\n.o2c-calc .help-btn{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:1px solid var(--oc-mut);background:none;color:var(--oc-mut);font-size:11px;cursor:pointer;margin-left:5px;vertical-align:-2px}\n.o2c-calc .ind-help{margin-top:8px;background:var(--oc-bg);border:1px solid var(--oc-line);border-radius:9px;padding:12px;font-size:12.5px;color:var(--oc-mut)}\n.o2c-calc .ind-help table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px}\n.o2c-calc .ind-help th,.o2c-calc .ind-help td{padding:5px 8px;border-bottom:1px solid var(--oc-line);text-align:left;vertical-align:top}\n.o2c-calc .ctrl-divider{grid-column:1\/-1;border:none;border-top:1px dashed var(--oc-line);margin:4px 0 0}\n.o2c-calc .section-label{font-size:12px;font-weight:700;color:var(--oc-ink);letter-spacing:.02em}\n.o2c-calc .slider-row{display:flex;align-items:center;gap:12px}\n.o2c-calc input[type=range]{flex:1;accent-color:var(--oc-navy);height:26px;cursor:pointer}\n.o2c-calc .slider-val{min-width:42px;text-align:right;font-weight:700;font-size:15px;color:var(--oc-navy)}\n.o2c-calc .ctrl-grid.oc-two{grid-template-columns:1fr 1fr}\n.o2c-calc .ctrl-grid.oc-two select,.o2c-calc .ctrl-grid.oc-two input[type=number]{padding:14px 14px;font-size:17px;font-weight:600}\n.o2c-calc details.oc-assume{margin-top:14px;border-top:1px dashed var(--oc-line);padding-top:12px}\n.o2c-calc details.oc-assume>summary{cursor:pointer;list-style:none;font-size:12.5px;color:var(--oc-mut)}\n.o2c-calc details.oc-assume>summary::-webkit-details-marker{display:none}\n.o2c-calc details.oc-assume>summary #oc-assump{font-weight:700;color:var(--oc-navy)}\n.o2c-calc details.oc-assume>summary:hover{color:var(--oc-ink)}\n\/* \u2500\u2500 rates \u91cd\u70b9\u5361(\u5e38\u5f00) \u2500\u2500 *\/\n.o2c-calc .oc-rates{margin-top:16px;background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1.5px solid rgba(12,75,168,.28);border-radius:18px;box-shadow:0 10px 34px rgba(31,56,100,.12),inset 0 1px 0 rgba(255,255,255,.92);overflow:hidden}\n.o2c-calc .oc-rates-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding:16px 20px 2px}\n.o2c-calc .oc-rates-t{font-size:15px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--oc-navy)}\n.o2c-calc .oc-rates-s{font-size:12px;color:var(--oc-mut)}\n.o2c-calc .oc-rates-body{padding:0 18px 16px}\n\/* \u2500\u2500 warnings \u2500\u2500 *\/\n.o2c-calc .oc-warn{display:none;margin:14px 0 0;background:#fff8e8;border:1px solid #f0d9a8;color:#8a6414;border-radius:10px;padding:10px 14px;font-size:13px}\n\/* \u2500\u2500 hero \u2500\u2500 *\/\n.o2c-calc .oc-hero{margin-top:18px;background:linear-gradient(125deg,#4f82cf,#74a0dc);border-radius:18px;padding:26px 26px 22px;color:#fff;position:relative;overflow:hidden;box-shadow:0 18px 40px rgba(31,56,100,.16)}\n.o2c-calc .oc-hero:before{content:\"\";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.06)}\n.o2c-calc .oc-hero-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}\n.o2c-calc .oc-hero-label{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85)}\n.o2c-calc .oc-view{display:inline-flex;border:1px solid rgba(255,255,255,.4);border-radius:99px;overflow:hidden}\n.o2c-calc .oc-view button{background:none;border:none;color:rgba(255,255,255,.8);font-size:12.5px;padding:5px 14px;cursor:pointer;font-family:inherit}\n.o2c-calc .oc-view button.on{background:#fff;color:var(--oc-navy);font-weight:700}\n.o2c-calc .oc-hero-num{font-size:clamp(34px,6vw,52px);font-weight:800;letter-spacing:-.03em;margin:8px 0 2px;font-variant-numeric:tabular-nums}\n.o2c-calc .oc-hero-sub{font-size:14px;color:rgba(255,255,255,.92)}\n.o2c-calc .oc-hero-sub b{font-weight:800}\n\/* \u2500\u2500 visual row: iceberg + donut \u2500\u2500 *\/\n.o2c-calc .oc-viz{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-top:14px}\n.o2c-calc .oc-vcard{background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(255,255,255,.92);border-radius:18px;padding:16px 18px;box-shadow:var(--oc-sh),inset 0 1px 0 rgba(255,255,255,.92)}\n.o2c-calc .oc-vh{font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--oc-ink);margin-bottom:2px}\n.o2c-calc .oc-vs{font-size:11.5px;color:var(--oc-mut);margin-bottom:10px}\n.o2c-calc .oc-berg{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}\n.o2c-calc .oc-berg svg{display:block}\n.o2c-calc .oc-blab{display:flex;flex-direction:column;gap:10px}\n.o2c-calc .oc-bl{padding:8px 10px;border-radius:10px;border:1px dashed var(--oc-line)}\n.o2c-calc .oc-bl .t{font-size:11.5px;color:var(--oc-mut)}\n.o2c-calc .oc-bl .v{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}\n.o2c-calc .oc-bl.sky .v{color:var(--oc-blue)}\n.o2c-calc .oc-bl.line .v{color:#3f6ab2}\n.o2c-calc .oc-bl.deep{background:rgba(12,75,168,.06);border-style:solid;border-color:rgba(12,75,168,.18)}\n.o2c-calc .oc-bl.deep .v{color:var(--oc-navy)}\n.o2c-calc .oc-donut{display:flex;align-items:center;gap:16px}\n.o2c-calc .oc-donut svg{display:block;flex:none}\n.o2c-calc .oc-dleg{display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--oc-mut)}\n.o2c-calc .oc-dleg b{color:var(--oc-ink);font-variant-numeric:tabular-nums}\n.o2c-calc .oc-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}\n\/* \u2500\u2500 split panels \u2500\u2500 *\/\n.o2c-calc .oc-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}\n.o2c-calc .oc-panel{background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(255,255,255,.92);border-radius:18px;padding:18px 20px;box-shadow:var(--oc-sh),inset 0 1px 0 rgba(255,255,255,.92)}\n.o2c-calc .oc-panel-h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;margin-bottom:12px}\n.o2c-calc .oc-panel-h .oc-ico{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:14px}\n.o2c-calc .oc-panel.emp .oc-panel-h{color:var(--oc-red)} .o2c-calc .oc-panel.emp .oc-ico{background:var(--oc-red-l)}\n.o2c-calc .oc-panel.stf .oc-panel-h{color:var(--oc-blue)} .o2c-calc .oc-panel.stf .oc-ico{background:var(--oc-blue-l)}\n.o2c-calc .oc-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;font-size:14px;color:var(--oc-mut);border-bottom:1px dashed var(--oc-line)}\n.o2c-calc .oc-row span:last-child{font-variant-numeric:tabular-nums;color:var(--oc-ink);font-weight:600;white-space:nowrap}\n.o2c-calc .oc-row.plus span:last-child{color:var(--oc-red)}\n.o2c-calc .oc-row.minus span:last-child{color:var(--oc-blue)}\n.o2c-calc .oc-total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-top:12px;font-weight:800;font-size:15px}\n.o2c-calc .oc-total span:last-child{font-size:22px;font-variant-numeric:tabular-nums}\n.o2c-calc .oc-panel.emp .oc-total span:last-child{color:var(--oc-red)}\n.o2c-calc .oc-panel.stf .oc-total span:last-child{color:var(--oc-blue)}\n.o2c-calc .oc-tag{display:inline-block;font-size:11px;font-weight:600;color:var(--oc-mut);background:var(--oc-bg);border:1px solid var(--oc-line);border-radius:99px;padding:2px 9px;margin-top:10px}\n\/* \u2500\u2500 details (full table) \u2500\u2500 *\/\n.o2c-calc details.oc-details{margin-top:14px;background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border:1px solid rgba(255,255,255,.92);border-radius:18px;overflow:hidden;box-shadow:var(--oc-sh)}\n.o2c-calc details.oc-details>summary{cursor:pointer;list-style:none;padding:15px 20px;font-weight:700;font-size:14px;color:var(--oc-ink);display:flex;align-items:center;gap:8px}\n.o2c-calc details.oc-details>summary::-webkit-details-marker{display:none}\n.o2c-calc details.oc-details>summary:after{content:\"\u25be\";margin-left:auto;color:var(--oc-mut);transition:transform .2s}\n.o2c-calc details.oc-details[open]>summary:after{transform:rotate(180deg)}\n.o2c-calc details.oc-details[open]>summary{border-bottom:1px solid var(--oc-line)}\n.o2c-calc .oc-details-body{padding:6px 20px 18px}\n\/* kept classes from v1 (restyled) *\/\n.o2c-calc .result-card{margin-top:16px;border:1px solid var(--oc-line);border-radius:12px;overflow:hidden}\n.o2c-calc .card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--oc-bg);padding:11px 16px;font-weight:700;font-size:14px}\n.o2c-calc .badge{font-size:11px;font-weight:600;background:var(--oc-blue-l);color:var(--oc-blue);border-radius:99px;padding:2px 10px}\n.o2c-calc .badge-green{font-size:11px;font-weight:600;background:#e5f6ec;color:#177245;border-radius:99px;padding:2px 10px}\n.o2c-calc .badge-note{font-size:11px;color:var(--oc-mut)}\n.o2c-calc .tbl-wrap{overflow-x:auto}\n.o2c-calc table{width:100%;border-collapse:collapse;font-size:13.5px}\n.o2c-calc thead th{background:#fff;color:var(--oc-mut);font-size:12px;font-weight:600;text-align:left;padding:9px 12px;border-bottom:1px solid var(--oc-line)}\n.o2c-calc tbody td{padding:10px 12px;border-bottom:1px solid var(--oc-line);vertical-align:top}\n.o2c-calc td.r,.o2c-calc th.r{text-align:right;font-variant-numeric:tabular-nums}\n.o2c-calc tr.tot td{font-weight:800;background:var(--oc-bg)}\n.o2c-calc .sub{display:block;font-size:11px;color:var(--oc-mut);font-weight:400;margin-top:2px}\n.o2c-calc .dash{color:#c3ccd6}\n.o2c-calc .capped{font-size:10.5px;color:#e8930c;font-weight:700}\n.o2c-calc .hpf-body{padding:14px 16px}\n.o2c-calc .hpf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}\n.o2c-calc .hpf-item{background:var(--oc-bg);border:1px solid var(--oc-line);border-radius:10px;padding:12px 14px}\n.o2c-calc .hpf-item .lbl{font-size:11.5px;color:var(--oc-mut);margin-bottom:4px}\n.o2c-calc .hpf-item .val{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}\n.o2c-calc .hpf-note{margin-top:10px;font-size:11.5px;color:var(--oc-mut)}\n.o2c-calc .foot{display:flex;flex-direction:column;gap:5px;margin-top:14px;font-size:11.5px;color:var(--oc-mut)}\n\/* \u2500\u2500 CTA \u2500\u2500 *\/\n.o2c-calc .oc-cta{margin-top:18px;background:linear-gradient(35deg,#4172c2 0%,#4f63b2 38%,#8a5092 72%,#bd4640 100%);border-radius:18px;padding:24px 26px;color:#e9eff9;box-shadow:0 18px 40px rgba(31,56,100,.16)}\n.o2c-calc .oc-cta-t{font-size:18px;font-weight:800;margin:0 0 4px}\n.o2c-calc .oc-cta-d{font-size:13.5px;color:#dbe3f3;margin:0 0 14px}\n.o2c-calc .oc-cta-row{display:flex;gap:10px;flex-wrap:wrap}\n.o2c-calc .oc-cta-row input[type=email]{flex:1;min-width:220px;padding:12px 14px;border-radius:9px;border:none;font-size:15px;font-family:inherit}\n.o2c-calc .oc-cta-row input[type=email]:focus{outline:3px solid rgba(255,255,255,.35)}\n.o2c-calc .oc-cta-row button{background:#fff;border:none;color:var(--oc-navy);font-weight:800;font-size:15px;padding:12px 22px;border-radius:999px;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(31,56,100,.18)}\n.o2c-calc .oc-cta-row button:hover{background:var(--oc-blue-l)}\n.o2c-calc .oc-cta-row button:disabled{opacity:.6;cursor:wait}\n.o2c-calc .oc-cta-hint{font-size:11.5px;color:#c4cee6;margin-top:9px}\n.o2c-calc .oc-cta-ok{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:10px;padding:14px 16px;font-size:14.5px}\n.o2c-calc .oc-hp{position:absolute;left:-9999px;opacity:0}\n\/* \u2500\u2500 responsive \u2500\u2500 *\/\n@media (max-width:720px){\n  .o2c-calc .ctrl-grid{grid-template-columns:1fr}\n  .o2c-calc .oc-split{grid-template-columns:1fr}\n  .o2c-calc .hpf-grid{grid-template-columns:1fr}\n  .o2c-calc .oc-viz{grid-template-columns:1fr}\n  .o2c-calc .oc-berg{grid-template-columns:1fr;justify-items:center}\n}\n\/* \u2500\u2500 \u7acb\u4f53\u60ac\u6d6e \u2500\u2500 *\/\n.o2c-calc .ctrl-panel,.o2c-calc .oc-vcard,.o2c-calc .oc-panel,.o2c-calc .oc-rates,.o2c-calc .oc-hero,.o2c-calc .oc-cta{transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}\n.o2c-calc .ctrl-panel:hover,.o2c-calc .oc-vcard:hover,.o2c-calc .oc-panel:hover{transform:translateY(-4px);box-shadow:0 2px 8px rgba(31,56,100,.06),0 22px 50px rgba(31,56,100,.15),inset 0 1px 0 rgba(255,255,255,.92)}\n.o2c-calc .oc-rates:hover{transform:translateY(-4px);box-shadow:0 4px 12px rgba(12,75,168,.08),0 26px 56px rgba(31,56,100,.18),inset 0 1px 0 rgba(255,255,255,.92)}\n.o2c-calc .oc-hero:hover,.o2c-calc .oc-cta:hover{transform:translateY(-4px);box-shadow:0 26px 56px rgba(31,56,100,.24)}\n@media (prefers-reduced-motion:reduce){.o2c-calc *{animation:none!important;transition:none!important}}\n<\/style>\n<div class=\"o2c-calc notranslate\" id=\"o2c-calc\" translate=\"no\">\n  <h2 class=\"oc-title\">China Social Insurance + Housing Provident Fund Calculator<\/h2>\n  <p class=\"oc-cities\">Beijing \u00b7 Shanghai \u00b7 Guangzhou \u00b7 Shenzhen \u00b7 Tianjin \u00b7 Chengdu \u00b7 Hangzhou \u00b7 Chongqing \u00b7 Wuhan \u00b7 Suzhou \u00b7 Xi'an \u00b7 Nanjing \u00b7 Changsha \u2014 2025\u201326 policy year<\/p>\n\n  <div class=\"ctrl-panel\">\n    <div class=\"ctrl-grid oc-two\">\n      <div class=\"field\">\n        <label>Where will you hire?<\/label>\n        <select id=\"sel-city\" onchange=\"onCity()\">\n          <option value=\"bj\">Beijing<\/option><option value=\"sh\">Shanghai<\/option>\n          <option value=\"gz\">Guangzhou<\/option><option value=\"sz\">Shenzhen<\/option>\n          <option value=\"tj\">Tianjin<\/option><option value=\"cd\">Chengdu<\/option>\n          <option value=\"hz\">Hangzhou<\/option><option value=\"cq\">Chongqing<\/option>\n          <option value=\"wh\">Wuhan<\/option><option value=\"su\">Suzhou<\/option>\n          <option value=\"xa\">Xi'an<\/option><option value=\"nj\">Nanjing<\/option>\n          <option value=\"cs\">Changsha<\/option>\n        <\/select>\n      <\/div>\n      <div class=\"field\">\n        <label>Monthly gross salary (RMB \u00a5)<\/label>\n        <input type=\"number\" id=\"inp-sal\" value=\"15000\" min=\"1\" step=\"100\" oninput=\"render()\">\n      <\/div>\n    <\/div>\n    <details class=\"oc-assume\">\n      <summary>\u2699\ufe0f Assumptions: <span id=\"oc-assump\">office industry \u00b7 housing fund 5% + 5%<\/span> \u2014 adjust<\/summary>\n      <div class=\"ctrl-grid\" style=\"margin-top:14px\">\n        <div class=\"field\" id=\"f-tier\" style=\"display:none\">\n          <label>Shenzhen Registration Type<\/label>\n          <select id=\"sel-tier\" onchange=\"render()\">\n            <option value=\"0\">Shenzhen Hukou \u2013 Tier 1<\/option>\n            <option value=\"1\">Non-Shenzhen Hukou \u2013 Tier 1<\/option>\n            <option value=\"2\">Non-Shenzhen Hukou \u2013 Tier 2<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"field\" id=\"f-su\" style=\"display:none\">\n          <label>Suzhou Zone Type<\/label>\n          <select id=\"sel-su\" onchange=\"render()\">\n            <option value=\"0\">Regular Zone (Medical employer: 7%)<\/option>\n            <option value=\"1\">Industrial Park \/ SIP (Medical employer: 5%)<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"field\">\n          <label>Industry Category (Work Injury Rate) <button type=\"button\" class=\"help-btn\" onclick=\"toggleIndHelp()\">?<\/button><\/label>\n          <select id=\"sel-ind\" onchange=\"render()\"><\/select>\n          <div id=\"ind-help\" class=\"ind-help\" style=\"display:none\"><\/div>\n        <\/div>\n        <div class=\"field\">\n          <label>Employer Housing Fund Rate<\/label>\n          <div class=\"slider-row\">\n            <input type=\"range\" id=\"inp-hpf-c\" min=\"5\" max=\"12\" step=\"1\" value=\"5\" oninput=\"onHpf('c')\">\n            <span class=\"slider-val\" id=\"sv-hpf-c\">5%<\/span>\n          <\/div>\n          <span id=\"lbl-hpf-c\" style=\"display:none\">5%<\/span>\n        <\/div>\n        <div class=\"field\">\n          <label>Employee Housing Fund Rate<\/label>\n          <div class=\"slider-row\">\n            <input type=\"range\" id=\"inp-hpf-e\" min=\"5\" max=\"12\" step=\"1\" value=\"5\" oninput=\"onHpf('e')\">\n            <span class=\"slider-val\" id=\"sv-hpf-e\">5%<\/span>\n          <\/div>\n          <span id=\"lbl-hpf-e\" style=\"display:none\">5%<\/span>\n        <\/div>\n      <\/div>\n    <\/details>\n  <\/div>\n\n  <div id=\"el-warn\" class=\"oc-warn\"><\/div>\n  <div id=\"el-out\"><\/div>\n\n  <div class=\"oc-cta\" id=\"oc-cta\">\n    <p class=\"oc-cta-t\">This is the statutory cost. Want the all-in number for your hires?<\/p>\n    <p class=\"oc-cta-d\">Out2China employs your team in China compliantly (EOR) \u2014 no local entity needed. Leave your email and our team will send a tailored all-in quote (statutory costs + our service fee) for your exact case within 1 business day.<\/p>\n    <div class=\"oc-cta-row\">\n      <input type=\"email\" id=\"oc-email\" placeholder=\"you@company.com\" autocomplete=\"email\">\n      <input type=\"text\" id=\"oc-web\" class=\"oc-hp\" tabindex=\"-1\" autocomplete=\"off\">\n      <button id=\"oc-btn\" onclick=\"ocLead()\">Get my exact quote \u2192<\/button>\n    <\/div>\n    <div class=\"oc-cta-hint\">Your current calculation (city, salary, employer cost) is attached to the request so we can quote precisely. No spam \u2014 one reply from a real consultant.<\/div>\n  <\/div>\n<\/div>\n\n<script>\n\n\/\/ \u2550\u2550 i18n:\u6309\u9875\u9762\u8bed\u8a00(\/zh\/ \u7b80\u3001\/zh_hk\/ \u7e41)\u6574\u4f53\u66ff\u6362\u82f1\u6587\u6587\u6848;?oclang= \u53ef\u5f3a\u5236 \u2550\u2550\nconst OC_LANG=(function(){\n  const q=new URLSearchParams(location.search).get('oclang');\n  if(q==='hans'||q==='hant'||q==='en') return q;\n  const p=location.pathname;\n  if(p.indexOf('\/zh_hk\/')===0) return 'hant';\n  if(p.indexOf('\/zh\/')===0) return 'hans';\n  const l=(document.documentElement.lang||'').toLowerCase();\n  if(l.indexOf('zh')===0) return (l.indexOf('hk')>=0||l.indexOf('tw')>=0||l.indexOf('hant')>=0)?'hant':'hans';\n  return 'en';\n})();\nconst OC_D=[[\"The HPF contribution rate (5%\u201312%) is negotiated between the employer and employee. The actual contribution base is based on the prior year's average monthly salary, and some cities set monthly contribution caps. Please verify with your local HPF management centre.\", \"\u516c\u79ef\u91d1\u7f34\u5b58\u6bd4\u4f8b(5%\u201312%)\u7531\u5355\u4f4d\u4e0e\u4e2a\u4eba\u534f\u5546;\u5b9e\u9645\u7f34\u5b58\u57fa\u6570\u6309\u4e0a\u5e74\u5ea6\u6708\u5747\u5de5\u8d44\u6838\u5b9a,\u90e8\u5206\u57ce\u5e02\u8bbe\u6709\u6708\u7f34\u5b58\u4e0a\u9650,\u8bf7\u4ee5\u5f53\u5730\u516c\u79ef\u91d1\u4e2d\u5fc3\u4e3a\u51c6\u3002\", \"\u516c\u7a4d\u91d1\u7e73\u5b58\u6bd4\u4f8b(5%\u201312%)\u7531\u55ae\u4f4d\u8207\u500b\u4eba\u5354\u5546;\u5be6\u969b\u7e73\u5b58\u57fa\u6578\u6309\u4e0a\u5e74\u5ea6\u6708\u5747\u5de5\u8cc7\u6838\u5b9a,\u90e8\u5206\u57ce\u5e02\u8a2d\u6709\u6708\u7e73\u5b58\u4e0a\u9650,\u8acb\u4ee5\u7576\u5730\u516c\u7a4d\u91d1\u4e2d\u5fc3\u70ba\u6e96\u3002\"], [\"All figures are for reference only. Actual rates are subject to official announcements from local social security bureaus. Work injury rates shown are benchmark rates and may be adjusted by the bureau based on the employer's injury record.\", \"\u4ee5\u4e0a\u6570\u636e\u4ec5\u4f9b\u53c2\u8003,\u5b9e\u9645\u4ee5\u5404\u5730\u793e\u4fdd\u5c40\u5b98\u65b9\u516c\u544a\u4e3a\u51c6\u3002\u5de5\u4f24\u8d39\u7387\u4e3a\u57fa\u51c6\u6863\u4f4d,\u793e\u4fdd\u5c40\u4f1a\u6309\u4f01\u4e1a\u5de5\u4f24\u8bb0\u5f55\u6d6e\u52a8\u8c03\u6574\u3002\", \"\u4ee5\u4e0a\u6578\u64da\u50c5\u4f9b\u53c3\u8003,\u5be6\u969b\u4ee5\u5404\u5730\u793e\u4fdd\u5c40\u5b98\u65b9\u516c\u544a\u70ba\u6e96\u3002\u5de5\u50b7\u8cbb\u7387\u70ba\u57fa\u6e96\u6a94\u4f4d,\u793e\u4fdd\u5c40\u6703\u6309\u4f01\u696d\u5de5\u50b7\u8a18\u9304\u6d6e\u52d5\u8abf\u6574\u3002\"], [\"Out2China employs your team in China compliantly (EOR) \u2014 no local entity needed. Leave your email and our team will send a tailored all-in quote (statutory costs + our service fee) for your exact case within 1 business day.\", \"Out2China \u4ee5\u5408\u89c4 EOR \u65b9\u5f0f\u4e3a\u4f60\u4ee3\u96c7\u4e2d\u56fd\u56e2\u961f\u2014\u2014\u65e0\u9700\u5728\u534e\u8bbe\u7acb\u516c\u53f8\u3002\u7559\u4e0b\u90ae\u7bb1,\u987e\u95ee\u4f1a\u5728 1 \u4e2a\u5de5\u4f5c\u65e5\u5185\u6309\u4f60\u7684\u5b9e\u9645\u60c5\u51b5\u53d1\u9001\u5168\u5305\u62a5\u4ef7(\u6cd5\u5b9a\u6210\u672c + \u670d\u52a1\u8d39)\u3002\", \"Out2China \u4ee5\u5408\u898f EOR \u65b9\u5f0f\u70ba\u4f60\u4ee3\u50f1\u4e2d\u570b\u5718\u968a\u2014\u2014\u7121\u9700\u5728\u83ef\u8a2d\u7acb\u516c\u53f8\u3002\u7559\u4e0b\u90f5\u7bb1,\u9867\u554f\u6703\u5728 1 \u500b\u5de5\u4f5c\u65e5\u5167\u6309\u4f60\u7684\u5be6\u969b\u60c5\u6cc1\u767c\u9001\u5168\u5305\u5831\u50f9(\u6cd5\u5b9a\u6210\u672c + \u670d\u52d9\u8cbb)\u3002\"], [\"\u2605 In practice, the HPF contribution base is based on the prior year's average monthly salary and may be subject to local upper\/lower limits. This calculator uses current gross salary as the base for reference only.\", \"\u2605 \u5b9e\u9645\u7f34\u5b58\u57fa\u6570\u6309\u4e0a\u5e74\u5ea6\u6708\u5747\u5de5\u8d44\u6838\u5b9a,\u5e76\u53d7\u5f53\u5730\u4e0a\u4e0b\u9650\u7ea6\u675f;\u672c\u5de5\u5177\u4ee5\u5f53\u524d\u6708\u85aa\u4e3a\u57fa\u6570,\u4ec5\u4f9b\u53c2\u8003\u3002\", \"\u2605 \u5be6\u969b\u7e73\u5b58\u57fa\u6578\u6309\u4e0a\u5e74\u5ea6\u6708\u5747\u5de5\u8cc7\u6838\u5b9a,\u4e26\u53d7\u7576\u5730\u4e0a\u4e0b\u9650\u7d04\u675f;\u672c\u5de5\u5177\u4ee5\u7576\u524d\u6708\u85aa\u70ba\u57fa\u6578,\u50c5\u4f9b\u53c3\u8003\u3002\"], [\"Guangzhou (Jul 2025 \u2013 Jun 2026): Pension base \u00a55,510\u2013\u00a527,549; Medical \u00a56,234\u2013\u00a531,179; Unemployment \u00a52,500\u2013\u00a541,112; Work injury floor \u00a52,500 (no ceiling). Medical includes maternity.\", \"\u5e7f\u5dde\uff082025.7\u20142026.6\uff09\uff1a\u517b\u8001\u57fa\u65705,510\u201427,549\u5143\uff1b\u533b\u75976,234\u201431,179\u5143\uff1b\u5931\u4e1a2,500\u201441,112\u5143\uff1b\u5de5\u4f24\u4e0b\u96502,500\u5143\u65e0\u4e0a\u9650\u3002\u533b\u7597\u542b\u751f\u80b2\u4fdd\u9669\u3002\", \"\u5ee3\u5dde\uff082025.7\u20142026.6\uff09\uff1a\u990a\u8001\u57fa\u65785,510\u201427,549\u5143\uff1b\u91ab\u76426,234\u201431,179\u5143\uff1b\u5931\u696d2,500\u201441,112\u5143\uff1b\u5de5\u50b7\u4e0b\u96502,500\u5143\u7121\u4e0a\u9650\u3002\u91ab\u7642\u542b\u751f\u80b2\u4fdd\u96aa\u3002\"], [\"Beijing (from Jul 2025): Unified contribution base \u00a57,162\u2013\u00a535,811. Work injury rate floats 0.2%\u20131.9%. Employee medical includes \u00a53\/mo serious illness supplement.\", \"\u5317\u4eac\uff082025.7\u8d77\uff09\uff1a\u7edf\u4e00\u57fa\u65707,162\u201435,811\u5143\u3002\u5de5\u4f240.2%\u20141.9%\u6d6e\u52a8\u3002\u4e2a\u4eba\u533b\u7597\u542b3\u5143\u91cd\u5927\u533b\u7597\u9669\u3002\", \"\u5317\u4eac\uff082025.7\u8d77\uff09\uff1a\u7d71\u4e00\u57fa\u65787,162\u201435,811\u5143\u3002\u5de5\u50b70.2%\u20141.9%\u6d6e\u52d5\u3002\u500b\u4eba\u91ab\u7642\u542b3\u5143\u91cd\u5927\u91ab\u7642\u96aa\u3002\"], [\"Your current calculation (city, salary, employer cost) is attached to the request so we can quote precisely. No spam \u2014 one reply from a real consultant.\", \"\u4f60\u7684\u5f53\u524d\u6d4b\u7b97(\u57ce\u5e02\/\u85aa\u8d44\/\u96c7\u4e3b\u6210\u672c)\u4f1a\u9644\u5728\u8bf7\u6c42\u4e2d,\u4fbf\u4e8e\u7cbe\u51c6\u62a5\u4ef7\u3002\u4e0d\u9a9a\u6270\u2014\u2014\u53ea\u6709\u4e00\u4f4d\u771f\u4eba\u987e\u95ee\u56de\u590d\u4e00\u6b21\u3002\", \"\u4f60\u7684\u7576\u524d\u6e2c\u7b97(\u57ce\u5e02\/\u85aa\u8cc7\/\u50f1\u4e3b\u6210\u672c)\u6703\u9644\u5728\u8acb\u6c42\u4e2d,\u4fbf\u65bc\u7cbe\u6e96\u5831\u50f9\u3002\u4e0d\u9a37\u64fe\u2014\u2014\u53ea\u6709\u4e00\u4f4d\u771f\u4eba\u9867\u554f\u56de\u8986\u4e00\u6b21\u3002\"], [\"Hangzhou: Unified base \u00a54,986\u2013\u00a525,299. Work injury rate floats 0.2%\u20131.5%. Medical (9.5%) includes maternity; separate maternity scheme at 0.8%.\", \"\u676d\u5dde\uff1a\u7edf\u4e00\u57fa\u65704,986\u201425,299\u5143\u3002\u5de5\u4f240.2%\u20141.5%\u6d6e\u52a8\u3002\u533b\u75979.5%\u542b\u751f\u80b2\uff1b\u53e6\u8bbe\u72ec\u7acb\u751f\u80b2\u4fdd\u96690.8%\u3002\", \"\u676d\u5dde\uff1a\u7d71\u4e00\u57fa\u65784,986\u201425,299\u5143\u3002\u5de5\u50b70.2%\u20141.5%\u6d6e\u52d5\u3002\u91ab\u76429.5%\u542b\u751f\u80b2\uff1b\u53e6\u8a2d\u7368\u7acb\u751f\u80b2\u4fdd\u96aa0.8%\u3002\"], [\"Chengdu: Unified base \u00a54,588\u2013\u00a522,938. Work injury rate floats 0.2%\u20131.9%. Serious illness insurance: employer 0.75% of base; employee exempt.\", \"\u6210\u90fd\uff1a\u7edf\u4e00\u57fa\u65704,588\u201422,938\u5143\u3002\u5de5\u4f240.2%\u20141.9%\u6d6e\u52a8\u3002\u5927\u75c5\u4fdd\u9669\u5355\u4f4d0.75%\uff08\u6309\u57fa\u6570\u8ba1\uff09\uff0c\u4e2a\u4eba\u4e0d\u7f34\u3002\", \"\u6210\u90fd\uff1a\u7d71\u4e00\u57fa\u65784,588\u201422,938\u5143\u3002\u5de5\u50b70.2%\u20141.9%\u6d6e\u52d5\u3002\u5927\u75c5\u4fdd\u96aa\u55ae\u4f4d0.75%\uff08\u6309\u57fa\u6578\u8a08\uff09\uff0c\u500b\u4eba\u4e0d\u7e73\u3002\"], [\"Shanghai (Jul 2025 \u2013 Jun 2026): Unified base \u00a57,460\u2013\u00a537,302. Work injury rate floats 0.2%\u20131.9%. Medical insurance includes maternity.\", \"\u4e0a\u6d77\uff082025.7\u20142026.6\uff09\uff1a\u7edf\u4e00\u57fa\u65707,460\u201437,302\u5143\u3002\u5de5\u4f240.2%\u20141.9%\u6d6e\u52a8\u3002\u533b\u7597\u542b\u751f\u80b2\u4fdd\u9669\u3002\", \"\u4e0a\u6d77\uff082025.7\u20142026.6\uff09\uff1a\u7d71\u4e00\u57fa\u65787,460\u201437,302\u5143\u3002\u5de5\u50b70.2%\u20141.9%\u6d6e\u52d5\u3002\u91ab\u7642\u542b\u751f\u80b2\u4fdd\u96aa\u3002\"], [\"Wuhan: Unified base \u00a54,498\u2013\u00a522,488. Work injury rate floats 0.2%\u20131.9%. Serious illness insurance: employee \u00a57\/mo; employer exempt.\", \"\u6b66\u6c49\uff1a\u7edf\u4e00\u57fa\u65704,498\u201422,488\u5143\u3002\u5de5\u4f240.2%\u20141.9%\u6d6e\u52a8\u3002\u5927\u75c5\u9669\u4e2a\u4eba7\u5143\/\u6708\uff0c\u5355\u4f4d\u4e0d\u7f34\u3002\", \"\u6b66\u6f22\uff1a\u7d71\u4e00\u57fa\u65784,498\u201422,488\u5143\u3002\u5de5\u50b70.2%\u20141.9%\u6d6e\u52d5\u3002\u5927\u75c5\u96aa\u500b\u4eba7\u5143\/\u6708\uff0c\u55ae\u4f4d\u4e0d\u7e73\u3002\"], [\"Chongqing: Unified base \u00a54,404\u2013\u00a522,017. Work injury rate floats 0.3%\u20132.2%. Serious illness: employer 1.5% + employee \u00a55\/mo fixed.\", \"\u91cd\u5e86\uff1a\u7edf\u4e00\u57fa\u65704,404\u201422,017\u5143\u3002\u5de5\u4f240.3%\u20142.2%\u6d6e\u52a8\u3002\u5927\u75c5\u9669\u5355\u4f4d1.5%+\u4e2a\u4eba5\u5143\/\u6708\uff08\u56fa\u5b9a\u989d\u5df2\u542b\u4e8e\u5408\u8ba1\uff09\u3002\", \"\u91cd\u6176\uff1a\u7d71\u4e00\u57fa\u65784,404\u201422,017\u5143\u3002\u5de5\u50b70.3%\u20142.2%\u6d6e\u52d5\u3002\u5927\u75c5\u96aa\u55ae\u4f4d1.5%+\u500b\u4eba5\u5143\/\u6708\uff08\u56fa\u5b9a\u984d\u5df2\u542b\u65bc\u5408\u8a08\uff09\u3002\"], [\"Changsha: Unified base \u00a54,072\u2013\u00a520,361. Work injury rate floats 0.6%\u20132.6%. Medical (8.7%) includes maternity insurance (0.7%).\", \"\u957f\u6c99\uff1a\u7edf\u4e00\u57fa\u65704,072\u201420,361\u5143\u3002\u5de5\u4f240.6%\u20142.6%\u6d6e\u52a8\u3002\u533b\u75978.7%\u542b\u751f\u80b2\u4fdd\u96690.7%\u3002\", \"\u9577\u6c99\uff1a\u7d71\u4e00\u57fa\u65784,072\u201420,361\u5143\u3002\u5de5\u50b70.6%\u20142.6%\u6d6e\u52d5\u3002\u91ab\u76428.7%\u542b\u751f\u80b2\u4fdd\u96aa0.7%\u3002\"], [\"Nanjing: Unified base \u00a54,952\u2013\u00a524,762. Work injury rate floats 0.2%\u20131.9%. Serious illness: employer \u00a510\/mo + employee \u00a510\/mo.\", \"\u5357\u4eac\uff1a\u7edf\u4e00\u57fa\u65704,952\u201424,762\u5143\u3002\u5de5\u4f240.2%\u20141.9%\u6d6e\u52a8\u3002\u5927\u75c5\u9669\u5355\u4f4d+\u4e2a\u4eba\u540410\u5143\/\u6708\u3002\", \"\u5357\u4eac\uff1a\u7d71\u4e00\u57fa\u65784,952\u201424,762\u5143\u3002\u5de5\u50b70.2%\u20141.9%\u6d6e\u52d5\u3002\u5927\u75c5\u96aa\u55ae\u4f4d+\u500b\u4eba\u540410\u5143\/\u6708\u3002\"], [\"Shenzhen: Pension base \u00a54,775\u2013\u00a527,549; Medical\/Maternity \u00a56,727\u2013\u00a533,633; Unemployment\/Work Injury \u00a52,520\u2013\u00a544,625.\", \"\u6df1\u5733\uff1a\u517b\u8001\u57fa\u65704,775\u201427,549\u5143\uff1b\u533b\u7597\/\u751f\u80b26,727\u201433,633\u5143\uff1b\u5931\u4e1a\/\u5de5\u4f242,520\u201444,625\u5143\u3002\", \"\u6df1\u5733\uff1a\u990a\u8001\u57fa\u65784,775\u201427,549\u5143\uff1b\u91ab\u7642\/\u751f\u80b26,727\u201433,633\u5143\uff1b\u5931\u696d\/\u5de5\u50b72,520\u201444,625\u5143\u3002\"], [\" within 1 business day. Meanwhile, feel free to ask Mia (bottom-right) anything about hiring in China.\", \" \u7684\u5168\u5305\u62a5\u4ef7\u53d1\u5230\u4f60\u7684\u90ae\u7bb1\u3002\u671f\u95f4\u53ef\u968f\u65f6\u95ee\u53f3\u4e0b\u89d2\u7684 Mia \u4efb\u4f55\u5728\u534e\u7528\u5de5\u95ee\u9898\u3002\", \" \u7684\u5168\u5305\u5831\u50f9\u767c\u5230\u4f60\u7684\u90f5\u7bb1\u3002\u671f\u9593\u53ef\u96a8\u6642\u554f\u53f3\u4e0b\u89d2\u7684 Mia \u4efb\u4f55\u5728\u83ef\u7528\u5de5\u554f\u984c\u3002\"], [\"What everyone sees is the salary \u2014 the employer's real burden sits below the surface.\", \"\u5927\u5bb6\u770b\u89c1\u7684\u53ea\u662f\u5de5\u8d44\u2014\u2014\u96c7\u4e3b\u7684\u771f\u5b9e\u8d1f\u62c5\u85cf\u5728\u6c34\u9762\u4e4b\u4e0b\u3002\", \"\u5927\u5bb6\u770b\u898b\u7684\u53ea\u662f\u5de5\u8cc7\u2014\u2014\u50f1\u4e3b\u7684\u771f\u5be6\u8ca0\u64d4\u85cf\u5728\u6c34\u9762\u4e4b\u4e0b\u3002\"], [\"Housing Provident Fund (HPF) \u2014 rate negotiated between employer & employee (5%\u201312%)\", \"\u4f4f\u623f\u516c\u79ef\u91d1(HPF)\u2014\u2014\u6bd4\u4f8b\u7531\u5355\u4f4d\u4e0e\u4e2a\u4eba\u534f\u5546(5%\u201312%)\", \"\u4f4f\u623f\u516c\u7a4d\u91d1(HPF)\u2014\u2014\u6bd4\u4f8b\u7531\u55ae\u4f4d\u8207\u500b\u4eba\u5354\u5546(5%\u201312%)\"], [\"\u2705 <b>Request received.<\/b> A consultant will email your tailored all-in quote for \", \"\u2705 <b>\u5df2\u6536\u5230\u8bf7\u6c42\u3002<\/b>\u987e\u95ee\u5c06\u5728 1 \u4e2a\u5de5\u4f5c\u65e5\u5185\u628a\u9488\u5bf9 \", \"\u2705 <b>\u5df2\u6536\u5230\u8acb\u6c42\u3002<\/b>\u9867\u554f\u5c07\u5728 1 \u500b\u5de5\u4f5c\u65e5\u5167\u628a\u91dd\u5c0d \"], [\" exceeds the contribution base ceiling \u2014 all schemes calculated at ceiling \u00a5\", \" \u9ad8\u4e8e\u7f34\u8d39\u57fa\u6570\u4e0a\u9650\u2014\u2014\u5404\u9669\u79cd\u7edf\u4e00\u6309\u4e0a\u9650 \u00a5\", \" \u9ad8\u65bc\u7e73\u8cbb\u57fa\u6578\u4e0a\u9650\u2014\u2014\u5404\u96aa\u7a2e\u7d71\u4e00\u6309\u4e0a\u9650 \u00a5\"], [\" is below the contribution base floor \u2014 all schemes calculated at floor \u00a5\", \" \u4f4e\u4e8e\u7f34\u8d39\u57fa\u6570\u4e0b\u9650\u2014\u2014\u5404\u9669\u79cd\u7edf\u4e00\u6309\u4e0b\u9650 \u00a5\", \" \u4f4e\u65bc\u7e73\u8cbb\u57fa\u6578\u4e0b\u9650\u2014\u2014\u5404\u96aa\u7a2e\u7d71\u4e00\u6309\u4e0b\u9650 \u00a5\"], [\"This is the statutory cost. Want the all-in number for your hires?\", \"\u8fd9\u662f\u6cd5\u5b9a\u6210\u672c\u3002\u60f3\u77e5\u9053\u96c7\u4eba\u7684\u300c\u5168\u5305\u4ef7\u300d\u5417?\", \"\u9019\u662f\u6cd5\u5b9a\u6210\u672c\u3002\u60f3\u77e5\u9053\u50f1\u4eba\u7684\u300c\u5168\u5305\u50f9\u300d\u55ce?\"], [\"Individual income tax not included \u2014 it varies with deductions\", \"\u672a\u542b\u4e2a\u4eba\u6240\u5f97\u7a0e\u2014\u2014\u56e0\u4e2a\u4eba\u4e13\u9879\u6263\u9664\u800c\u5f02\", \"\u672a\u542b\u500b\u4eba\u6240\u5f97\u7a05\u2014\u2014\u56e0\u500b\u4eba\u5c08\u9805\u6263\u9664\u800c\u7570\"], [\"China Social Insurance + Housing Provident Fund Calculator\", \"\u4e2d\u56fd\u793e\u4fdd + \u4f4f\u623f\u516c\u79ef\u91d1\u8ba1\u7b97\u5668\", \"\u4e2d\u570b\u793e\u4fdd + \u4f4f\u623f\u516c\u7a4d\u91d1\u8a08\u7b97\u5668\"], [\"Each scheme has independent contribution base limits\", \"\u5404\u9669\u79cd\u57fa\u6570\u4e0a\u4e0b\u9650\u72ec\u7acb\", \"\u5404\u96aa\u7a2e\u57fa\u6578\u4e0a\u4e0b\u9650\u7368\u7acb\"], [\"The official 2025\u201326 rates behind this calculation.\", \"\u672c\u6b21\u8ba1\u7b97\u6240\u4f9d\u636e\u7684 2025\u201326 \u5b98\u65b9\u8d39\u7387,\u9010\u9669\u79cd\u5217\u660e\u3002\", \"\u672c\u6b21\u8a08\u7b97\u6240\u4f9d\u64da\u7684 2025\u201326 \u5b98\u65b9\u8cbb\u7387,\u9010\u96aa\u7a2e\u5217\u660e\u3002\"], [\"Rate negotiated between employer & employee, 5%\u201312%\", \"\u6bd4\u4f8b\u7531\u5355\u4f4d\u4e0e\u4e2a\u4eba\u534f\u5546,5%\u201312%\", \"\u6bd4\u4f8b\u7531\u55ae\u4f4d\u8207\u500b\u4eba\u5354\u5546,5%\u201312%\"], [\"Employee: 2% + \u00a53\/mo serious illness supplement\", \"\u4e2a\u4eba 2% + \u6bcf\u6708 \u00a53 \u5927\u75c5\u8865\u5145\", \"\u500b\u4eba 2% + \u6bcf\u6708 \u00a53 \u5927\u75c5\u88dc\u5145\"], [\"Above water \u2014 employee take-home (before IIT)\", \"\u6c34\u9762\u4e0a\u2014\u2014\u5458\u5de5\u5230\u624b(\u672a\u6263\u4e2a\u7a0e)\", \"\u6c34\u9762\u4e0a\u2014\u2014\u54e1\u5de5\u5230\u624b(\u672a\u6263\u500b\u7a05)\"], [\"Industrial Park \/ SIP (Medical employer: 5%)\", \"\u5de5\u4e1a\u56ed\u533a SIP(\u5355\u4f4d\u533b\u7597 5%)\", \"\u5de5\u696d\u5712\u5340 SIP(\u55ae\u4f4d\u91ab\u7642 5%)\"], [\" contribution base ceiling \u2014 calculated at \u00a5\", \" \u7f34\u8d39\u57fa\u6570\u4e0a\u9650\u2014\u2014\u6309 \u00a5\", \" \u7e73\u8cbb\u57fa\u6578\u4e0a\u9650\u2014\u2014\u6309 \u00a5\"], [\" contribution base floor \u2014 calculated at \u00a5\", \" \u7f34\u8d39\u57fa\u6570\u4e0b\u9650\u2014\u2014\u6309 \u00a5\", \" \u7e73\u8cbb\u57fa\u6578\u4e0b\u9650\u2014\u2014\u6309 \u00a5\"], [\"At the waterline \u2014 employee contributions\", \"\u6c34\u7ebf\u5904\u2014\u2014\u5458\u5de5\u4e2a\u4eba\u7f34\u7eb3\", \"\u6c34\u7dda\u8655\u2014\u2014\u54e1\u5de5\u500b\u4eba\u7e73\u7d0d\"], [\"Below the surface \u2014 extra employer cost\", \"\u6c34\u9762\u4e0b\u2014\u2014\u96c7\u4e3b\u989d\u5916\u6210\u672c\", \"\u6c34\u9762\u4e0b\u2014\u2014\u50f1\u4e3b\u984d\u5916\u6210\u672c\"], [\"Composition of the total employer cost.\", \"\u96c7\u4e3b\u603b\u6210\u672c\u7684\u6784\u6210\u3002\", \"\u50f1\u4e3b\u7e3d\u6210\u672c\u7684\u69cb\u6210\u3002\"], [\"Employer 0.75% of base; employee exempt\", \"\u5355\u4f4d\u6309\u57fa\u6570 0.75%,\u4e2a\u4eba\u514d\u7f34\", \"\u55ae\u4f4d\u6309\u57fa\u6578 0.75%,\u500b\u4eba\u514d\u7e73\"], [\"Industry Category (Work Injury Rate)\", \"\u884c\u4e1a\u7c7b\u522b(\u5de5\u4f24\u8d39\u7387)\", \"\u884c\u696d\u985e\u5225(\u5de5\u50b7\u8cbb\u7387)\"], [\"Full rate table & contribution bases\", \"\u5b8c\u6574\u8d39\u7387\u8868\u4e0e\u7f34\u8d39\u57fa\u6570\", \"\u5b8c\u6574\u8cbb\u7387\u8868\u8207\u7e73\u8cbb\u57fa\u6578\"], [\"Basic Medical Insurance (incl. Mat.)\", \"\u57fa\u672c\u533b\u7597\u4fdd\u9669(\u542b\u751f\u80b2)\", \"\u57fa\u672c\u91ab\u7642\u4fdd\u96aa(\u542b\u751f\u80b2)\"], [\"Regular Zone (Medical employer: 7%)\", \"\u5e38\u89c4\u533a\u57df(\u5355\u4f4d\u533b\u7597 7%)\", \"\u5e38\u898f\u5340\u57df(\u55ae\u4f4d\u91ab\u7642 7%)\"], [\"+ Social insurance (employer share)\", \"+ \u793e\u4fdd(\u5355\u4f4d\u90e8\u5206)\", \"+ \u793e\u4fdd(\u55ae\u4f4d\u90e8\u5206)\"], [\"\u2212 Social insurance (employee share)\", \"\u2212 \u793e\u4fdd(\u4e2a\u4eba\u90e8\u5206)\", \"\u2212 \u793e\u4fdd(\u500b\u4eba\u90e8\u5206)\"], [\"Includes maternity insurance (0.7%)\", \"\u542b\u751f\u80b2\u4fdd\u9669(0.7%)\", \"\u542b\u751f\u80b2\u4fdd\u96aa(0.7%)\"], [\"Employer 1.5%; employee \u00a55\/mo fixed\", \"\u5355\u4f4d 1.5%,\u4e2a\u4eba\u6bcf\u6708 5 \u5143\", \"\u55ae\u4f4d 1.5%,\u500b\u4eba\u6bcf\u6708 5 \u5143\"], [\"Contribution base = monthly salary\", \"\u7f34\u8d39\u57fa\u6570 = \u6708\u85aa\", \"\u7e73\u8cbb\u57fa\u6578 = \u6708\u85aa\"], [\"Employer \u00a56.4\/mo; employee \u00a51.6\/mo\", \"\u5355\u4f4d\u6bcf\u6708 6.4 \u5143,\u4e2a\u4eba\u6bcf\u6708 1.6 \u5143\", \"\u55ae\u4f4d\u6bcf\u6708 6.4 \u5143,\u500b\u4eba\u6bcf\u6708 1.6 \u5143\"], [\"Includes maternity insurance (1%)\", \"\u542b\u751f\u80b2\u4fdd\u9669(1%)\", \"\u542b\u751f\u80b2\u4fdd\u96aa(1%)\"], [\"Employer \u00a510\/mo; employee \u00a510\/mo\", \"\u5355\u4f4d\u3001\u4e2a\u4eba\u6bcf\u6708\u5404 10 \u5143\", \"\u55ae\u4f4d\u3001\u500b\u4eba\u6bcf\u6708\u5404 10 \u5143\"], [\"Pension\/Unemployment\/Work Injury\", \"\u517b\u8001\u00b7\u5931\u4e1a\u00b7\u5de5\u4f24\", \"\u990a\u8001\u00b7\u5931\u696d\u00b7\u5de5\u50b7\"], [\"+ Housing fund (employer share)\", \"+ \u516c\u79ef\u91d1(\u5355\u4f4d\u90e8\u5206)\", \"+ \u516c\u7a4d\u91d1(\u55ae\u4f4d\u90e8\u5206)\"], [\"\u2212 Housing fund (employee share)\", \"\u2212 \u516c\u79ef\u91d1(\u4e2a\u4eba\u90e8\u5206)\", \"\u2212 \u516c\u7a4d\u91d1(\u500b\u4eba\u90e8\u5206)\"], [\"Employee \u00a57\/mo; employer exempt\", \"\u4e2a\u4eba\u6bcf\u6708 7 \u5143,\u5355\u4f4d\u514d\u7f34\", \"\u500b\u4eba\u6bcf\u6708 7 \u5143,\u55ae\u4f4d\u514d\u7e73\"], [\"Employee \u00a55\/mo; employer exempt\", \"\u4e2a\u4eba\u6bcf\u6708 5 \u5143,\u5355\u4f4d\u514d\u7f34\", \"\u500b\u4eba\u6bcf\u6708 5 \u5143,\u55ae\u4f4d\u514d\u7e73\"], [\"Monthly gross salary (RMB \u00a5)\", \"\u6708\u85aa(\u7a0e\u524d,\u4eba\u6c11\u5e01 \u00a5)\", \"\u6708\u85aa(\u7a05\u524d,\u4eba\u6c11\u5e63 \u00a5)\"], [\"Housing Provident Fund (HPF)\", \"\u4f4f\u623f\u516c\u79ef\u91d1(HPF)\", \"\u4f4f\u623f\u516c\u7a4d\u91d1(HPF)\"], [\"Includes maternity insurance\", \"\u542b\u751f\u80b2\u4fdd\u9669\", \"\u542b\u751f\u80b2\u4fdd\u96aa\"], [\"Non-Shenzhen Hukou \u2013 Tier 1\", \"\u975e\u6df1\u6237\u4e00\u6863\", \"\u975e\u6df1\u6236\u4e00\u6a94\"], [\"Non-Shenzhen Hukou \u2013 Tier 2\", \"\u975e\u6df1\u6237\u4e8c\u6863\", \"\u975e\u6df1\u6236\u4e8c\u6a94\"], [\"Shenzhen Registration Type\", \"\u6df1\u5733\u53c2\u4fdd\u6863\u4f4d\", \"\u6df1\u5733\u53c3\u4fdd\u6a94\u4f4d\"], [\"The iceberg of hiring cost\", \"\u96c7\u4f63\u6210\u672c\u51b0\u5c71\", \"\u50f1\u50ad\u6210\u672c\u51b0\u5c71\"], [\"Social Insurance Subtotal\", \"\u793e\u4fdd\u5c0f\u8ba1\", \"\u793e\u4fdd\u5c0f\u8a08\"], [\"Serious Illness Insurance\", \"\u5927\u75c5\u4fdd\u9669\", \"\u5927\u75c5\u4fdd\u96aa\"], [\"incl. \u00a53 serious illness\", \"\u542b \u00a53 \u5927\u75c5\", \"\u542b \u00a53 \u5927\u75c5\"], [\"From Jul 2025 \/ Jan 2026\", \"2025.7 \/ 2026.1 \u8d77\", \"2025.7 \/ 2026.1 \u8d77\"], [\"Unemployment\/Work Injury\", \"\u5931\u4e1a\u00b7\u5de5\u4f24\", \"\u5931\u696d\u00b7\u5de5\u50b7\"], [\"Shenzhen Hukou \u2013 Tier 1\", \"\u6df1\u6237\u4e00\u6863\", \"\u6df1\u6236\u4e00\u6a94\"], [\"What you pay (employer)\", \"\u96c7\u4e3b\u5b9e\u9645\u652f\u51fa\", \"\u50f1\u4e3b\u5be6\u969b\u652f\u51fa\"], [\"What your employee gets\", \"\u5458\u5de5\u5b9e\u9645\u6240\u5f97\", \"\u54e1\u5de5\u5be6\u969b\u6240\u5f97\"], [\"Employer Contribution (\", \"\u5355\u4f4d\u7f34\u5b58(\", \"\u55ae\u4f4d\u7e73\u5b58(\"], [\"Employee Contribution (\", \"\u4e2a\u4eba\u7f34\u5b58(\", \"\u500b\u4eba\u7e73\u5b58(\"], [\"Unemployment Insurance\", \"\u5931\u4e1a\u4fdd\u9669\", \"\u5931\u696d\u4fdd\u96aa\"], [\"Where your money goes\", \"\u94b1\u82b1\u5230\u4e86\u54ea\u91cc\", \"\u9322\u82b1\u5230\u4e86\u54ea\u88e1\"], [\"Work Injury Insurance\", \"\u5de5\u4f24\u4fdd\u9669\", \"\u5de5\u50b7\u4fdd\u96aa\"], [\"Where will you hire?\", \"\u5728\u54ea\u5ea7\u57ce\u5e02\u7528\u5de5?\", \"\u5728\u54ea\u5ea7\u57ce\u5e02\u7528\u5de5?\"], [\"Employer rate floats\", \"\u5355\u4f4d\u8d39\u7387\u6d6e\u52a8\", \"\u55ae\u4f4d\u8cbb\u7387\u6d6e\u52d5\"], [\"SIP employer rate 5%\", \"\u5de5\u4e1a\u56ed\u533a\u5355\u4f4d\u6bd4\u4f8b 5%\", \"\u5de5\u696d\u5712\u5340\u55ae\u4f4d\u6bd4\u4f8b 5%\"], [\"Get my exact quote \u2192\", \"\u83b7\u53d6\u7cbe\u786e\u62a5\u4ef7 \u2192\", \"\u7372\u53d6\u7cbe\u78ba\u5831\u50f9 \u2192\"], [\"Total employer cost\", \"\u96c7\u4e3b\u603b\u6210\u672c\", \"\u50f1\u4e3b\u7e3d\u6210\u672c\"], [\"Maternity Insurance\", \"\u751f\u80b2\u4fdd\u9669\", \"\u751f\u80b2\u4fdd\u96aa\"], [\"Jul 2025 \u2013 Jun 2026\", \"2025.7 \u2013 2026.6\", \"2025.7 \u2013 2026.6\"], [\"Oct 2025 \u2013 Dec 2026\", \"2025.10 \u2013 2026.12\", \"2025.10 \u2013 2026.12\"], [\"Employer HPF Rate\", \"\u5355\u4f4d\u516c\u79ef\u91d1\u6bd4\u4f8b\", \"\u55ae\u4f4d\u516c\u7a4d\u91d1\u6bd4\u4f8b\"], [\"Employee HPF Rate\", \"\u4e2a\u4eba\u516c\u79ef\u91d1\u6bd4\u4f8b\", \"\u500b\u4eba\u516c\u7a4d\u91d1\u6bd4\u4f8b\"], [\"Contribution Base\", \"\u7f34\u8d39\u57fa\u6570\", \"\u7e73\u8cbb\u57fa\u6578\"], [\"Pension Insurance\", \"\u517b\u8001\u4fdd\u9669\", \"\u990a\u8001\u4fdd\u96aa\"], [\"Medical Insurance\", \"\u533b\u7597\u4fdd\u9669\", \"\u91ab\u7642\u4fdd\u96aa\"], [\"Medical\/Maternity\", \"\u533b\u7597\u00b7\u751f\u80b2\", \"\u91ab\u7642\u00b7\u751f\u80b2\"], [\"\u2699\ufe0f Assumptions: \", \"\u2699\ufe0f \u9ed8\u8ba4\u5047\u8bbe:\", \"\u2699\ufe0f \u9810\u8a2d\u5047\u8a2d:\"], [\"Suzhou Zone Type\", \"\u82cf\u5dde\u533a\u57df\u7c7b\u578b\", \"\u8607\u5dde\u5340\u57df\u985e\u578b\"], [\" serious illness\", \" \u5927\u75c5\", \" \u5927\u75c5\"], [\"office industry\", \"\u529e\u516c\u7c7b\u884c\u4e1a\", \"\u8fa6\u516c\u985e\u884c\u696d\"], [\">Employer (\u00a5)<\", \">\u5355\u4f4d\u5e94\u7f34(\u00a5)<\", \">\u55ae\u4f4d\u61c9\u7e73(\u00a5)<\"], [\">Employee (\u00a5)<\", \">\u4e2a\u4eba\u5e94\u7f34(\u00a5)<\", \">\u500b\u4eba\u61c9\u7e73(\u00a5)<\"], [\" is below the \", \" \u4f4e\u4e8e\", \" \u4f4e\u65bc\"], [\" is above the \", \" \u9ad8\u4e8e\", \" \u9ad8\u65bc\"], [\">Unemployment<\", \">\u5931\u4e1a<\", \">\u5931\u696d<\"], [\" (indicative)\", \"(\u53c2\u8003)\", \"(\u53c3\u8003)\"], [\"employer load\", \"\u96c7\u4e3b\u8d1f\u62c5\", \"\u50f1\u4e3b\u8ca0\u64d4\"], [\" (before IIT)\", \"(\u672a\u6263\u4e2a\u7a0e)\", \"(\u672a\u6263\u500b\u7a05)\"], [\"From Jul 2025\", \"2025.7 \u8d77\", \"2025.7 \u8d77\"], [\">Work Injury<\", \">\u5de5\u4f24<\", \">\u5de5\u50b7<\"], [\"(indicative)\", \"(\u53c2\u8003)\", \"(\u53c3\u8003)\"], [\"Gross salary\", \"\u7a0e\u524d\u5de5\u8d44\", \"\u7a05\u524d\u5de5\u8cc7\"], [\">Employer %<\", \">\u5355\u4f4d\u6bd4\u4f8b<\", \">\u55ae\u4f4d\u6bd4\u4f8b<\"], [\">Employee %<\", \">\u4e2a\u4eba\u6bd4\u4f8b<\", \">\u500b\u4eba\u6bd4\u4f8b<\"], [\" on salary\", \"(\u5360\u5de5\u8d44)\", \"(\u4f54\u5de5\u8cc7)\"], [\">Base (\u00a5)<\", \">\u57fa\u6570(\u00a5)<\", \">\u57fa\u6578(\u00a5)<\"], [\" \u2014 adjust\", \" \u2014 \u70b9\u6b64\u8c03\u6574\", \" \u2014 \u9ede\u6b64\u8abf\u6574\"], [\">Monthly<\", \">\u6708\u5ea6<\", \">\u6708\u5ea6<\"], [\"Take-home\", \"\u5230\u624b\", \"\u5230\u624b\"], [\">Pension<\", \">\u517b\u8001<\", \">\u990a\u8001<\"], [\">Medical<\", \">\u533b\u7597<\", \">\u91ab\u7642<\"], [\"your city\", \"\u4f60\u7684\u57ce\u5e02\", \"\u4f60\u7684\u57ce\u5e02\"], [\"Guangzhou\", \"\u5e7f\u5dde\", \"\u5ee3\u5dde\"], [\"Chongqing\", \"\u91cd\u5e86\", \"\u91cd\u6176\"], [\">Annual<\", \">\u5e74\u5ea6<\", \">\u5e74\u5ea6<\"], [\">Scheme<\", \">\u9669\u79cd<\", \">\u96aa\u7a2e<\"], [\"Salary \u00a5\", \"\u5de5\u8d44 \u00a5\", \"\u5de5\u8cc7 \u00a5\"], [\"Shanghai\", \"\u4e0a\u6d77\", \"\u4e0a\u6d77\"], [\"Shenzhen\", \"\u6df1\u5733\", \"\u6df1\u5733\"], [\"Hangzhou\", \"\u676d\u5dde\", \"\u676d\u5dde\"], [\"Changsha\", \"\u957f\u6c99\", \"\u9577\u6c99\"], [\"Beijing\", \"\u5317\u4eac\", \"\u5317\u4eac\"], [\"Tianjin\", \"\u5929\u6d25\", \"\u5929\u6d25\"], [\"Chengdu\", \"\u6210\u90fd\", \"\u6210\u90fd\"], [\"Nanjing\", \"\u5357\u4eac\", \"\u5357\u4eac\"], [\"\/month\", \"\/\u6708\", \"\/\u6708\"], [\"Suzhou\", \"\u82cf\u5dde\", \"\u8607\u5dde\"], [\"\/year\", \"\/\u5e74\", \"\/\u5e74\"], [\"Wuhan\", \"\u6b66\u6c49\", \"\u6b66\u6f22\"], [\"Xi'an\", \"\u897f\u5b89\", \"\u897f\u5b89\"], [\"\/mo\", \"\/\u6708\", \"\/\u6708\"], [\"\/yr\", \"\/\u5e74\", \"\/\u5e74\"],[\"\u2014 2025\u201326 policy year\",\"\u2014 2025\u201326 \u653f\u7b56\u5e74\u5ea6\",\"\u2014 2025\u201326 \u653f\u7b56\u5e74\u5ea6\"],[\"Social insurance\",\"\u793e\u4fdd\",\"\u793e\u4fdd\"],[\"Housing fund\",\"\u516c\u79ef\u91d1\",\"\u516c\u7a4d\u91d1\"]];\nfunction applyDict(s){\n  if(OC_LANG==='en'||!s) return s;\n  const i=OC_LANG==='hans'?1:2;\n  s=s.replace(\/Category (\\d) work-injury\/g, OC_LANG==='hans'?'$1\u7c7b\u5de5\u4f24':'$1\u985e\u5de5\u50b7');\n  s=s.replace(\/Category (\\d)\/g, OC_LANG==='hans'?'$1\u7c7b':'$1\u985e');\n  s=s.replace(\/housing fund\/g, OC_LANG==='hans'?'\u516c\u79ef\u91d1':'\u516c\u7a4d\u91d1');\n  for(let k=0;k<OC_D.length;k++){ s=s.split(OC_D[k][0]).join(OC_D[k][i]); }\n  return s;\n}\nconst OC_X=applyDict;\n\n\n\/\/ \u2500\u2500 Work Injury Rate Tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst INDS_STD = [\n  ['Category 1 (0.2%)',0.002],['Category 2 (0.4%)',0.004],['Category 3 (0.7%)',0.007],['Category 4 (0.9%)',0.009],\n  ['Category 5 (1.1%)',0.011],['Category 6 (1.3%)',0.013],['Category 7 (1.6%)',0.016],['Category 8 (1.9%)',0.019],\n];\nconst INDS_GD = [\n  ['Category 1 (0.2%)',0.002],['Category 2 (0.4%)',0.004],['Category 3 (0.6%)',0.006],['Category 4 (0.8%)',0.008],\n  ['Category 5 (0.9%)',0.009],['Category 6 (1.0%)',0.010],['Category 7 (1.2%)',0.012],['Category 8 (1.4%)',0.014],\n];\nconst INDS_TJ = [\n  ['Category 1 (0.2%)',0.002],['Category 2 (0.4%)',0.004],['Category 3 (0.6%)',0.006],['Category 4 (0.8%)',0.008],\n  ['Category 5 (1.0%)',0.010],['Category 6 (1.2%)',0.012],['Category 7 (1.6%)',0.016],['Category 8 (2.0%)',0.020],\n];\nconst INDS_HZ = [\n  ['Category 1 (0.2%)',0.002],['Category 2 (0.4%)',0.004],['Category 3 (0.7%)',0.007],\n  ['Category 4 (0.9%)',0.009],['Category 5 (1.1%)',0.011],['Category 6 (1.3%)',0.013],['Category 7 (1.5%)',0.015],\n];\nconst INDS_SU = [\n  ['Category 1 (0.2%)',0.002],['Category 2 (0.4%)',0.004],['Category 3 (0.7%)',0.007],['Category 4 (0.9%)',0.009],\n];\nconst INDS_CQ = [\n  ['Category 1 (0.3%)',0.003],['Category 2 (0.5%)',0.005],['Category 3 (0.8%)',0.008],['Category 4 (1.0%)',0.010],\n  ['Category 5 (1.3%)',0.013],['Category 6 (1.5%)',0.015],['Category 7 (1.8%)',0.018],['Category 8 (2.2%)',0.022],\n];\nconst INDS_CS = [\n  ['Category 1 (0.6%)',0.006],['Category 2 (0.9%)',0.009],['Category 3 (1.2%)',0.012],['Category 4 (1.4%)',0.014],\n  ['Category 5 (1.7%)',0.017],['Category 6 (2.1%)',0.021],['Category 7 (2.4%)',0.024],['Category 8 (2.6%)',0.026],\n];\n\n\/\/ \u2500\u2500 City Data \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst CITY = {\n  bj:{\n    label:'Beijing', period:'From Jul 2025', bMin:7162, bMax:35811, inds:INDS_STD,\n    rows:[\n      {n:'Pension Insurance',                  cr:0.16,  er:0.08},\n      {n:'Basic Medical Insurance (incl. Mat.)',cr:0.098, er:0.02, er_extra:3, cr_note:'Employee: 2% + \u00a53\/mo serious illness supplement'},\n      {n:'Unemployment Insurance',             cr:0.005, er:0.005},\n      {n:'Work Injury Insurance',              cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20131.9%'},\n    ]\n  },\n  sh:{\n    label:'Shanghai', period:'Jul 2025 \u2013 Jun 2026', bMin:7460, bMax:37302, inds:INDS_STD,\n    rows:[\n      {n:'Pension Insurance',       cr:0.16,  er:0.08},\n      {n:'Medical Insurance',       cr:0.09,  er:0.02, cr_note:'Includes maternity insurance'},\n      {n:'Unemployment Insurance',  cr:0.005, er:0.005},\n      {n:'Work Injury Insurance',   cr:'ind', er:null, cr_note:'Employer rate floats 0.2%\u20131.9%'},\n    ]\n  },\n  gz:{\n    label:'Guangzhou', period:'Jul 2025 \u2013 Jun 2026', inds:INDS_GD,\n    bases:{\n      pension:{min:5510, max:27549, label:'Pension'},\n      medical:{min:6234, max:31179, label:'Medical'},\n      unemp:  {min:2500, max:41112, label:'Unemployment'},\n      injury: {min:2500, max:null,  label:'Work Injury'},\n    },\n    rows:[\n      {n:'Pension Insurance',       cr:0.16,   er:0.08,  bk:'pension'},\n      {n:'Medical Insurance',       cr:0.0685, er:0.02,  bk:'medical', cr_note:'Includes maternity insurance'},\n      {n:'Unemployment Insurance',  cr:0.008,  er:0.002, bk:'unemp'},\n      {n:'Work Injury Insurance',   cr:'ind',  er:null,  bk:'injury'},\n    ]\n  },\n  sz:{\n    label:'Shenzhen', period:'From Jul 2025 \/ Jan 2026', inds:INDS_GD,\n    bases:{\n      pension:{min:4775, max:27549, label:'Pension'},\n      medical:{min:6727, max:33633, label:'Medical\/Maternity'},\n      unemp:  {min:2520, max:44625, label:'Unemployment\/Work Injury'},\n    },\n    tiers:[\n      { label:'Shenzhen Hukou \u2013 Tier 1', rows:[\n        {n:'Pension Insurance',      cr:0.17,  er:0.08,  bk:'pension'},\n        {n:'Medical Insurance',      cr:0.05,  er:0.02,  bk:'medical'},\n        {n:'Maternity Insurance',    cr:0.005, er:0,     bk:'medical'},\n        {n:'Unemployment Insurance', cr:0.008, er:0.002, bk:'unemp'},\n        {n:'Work Injury Insurance',  cr:'ind', er:0,     bk:'unemp'},\n      ]},\n      { label:'Non-SZ Hukou \u2013 Tier 1', rows:[\n        {n:'Pension Insurance',      cr:0.16,  er:0.08,  bk:'pension'},\n        {n:'Medical Insurance',      cr:0.05,  er:0.02,  bk:'medical'},\n        {n:'Maternity Insurance',    cr:0.005, er:0,     bk:'medical'},\n        {n:'Unemployment Insurance', cr:0.008, er:0.002, bk:'unemp'},\n        {n:'Work Injury Insurance',  cr:'ind', er:0,     bk:'unemp'},\n      ]},\n      { label:'Non-SZ Hukou \u2013 Tier 2', rows:[\n        {n:'Pension Insurance',      cr:0.16,  er:0.08,  bk:'pension'},\n        {n:'Medical Insurance',      cr:0.015, er:0.005, bk:'medical'},\n        {n:'Maternity Insurance',    cr:0.005, er:0,     bk:'medical'},\n        {n:'Unemployment Insurance', cr:0.008, er:0.002, bk:'unemp'},\n        {n:'Work Injury Insurance',  cr:'ind', er:0,     bk:'unemp'},\n      ]},\n    ]\n  },\n  tj:{\n    label:'Tianjin', period:'Oct 2025 \u2013 Dec 2026', bMin:5124, bMax:25620, inds:INDS_TJ,\n    rows:[\n      {n:'Pension Insurance',       cr:0.16,  er:0.08},\n      {n:'Medical Insurance',       cr:0.10,  er:0.02},\n      {n:'Unemployment Insurance',  cr:0.005, er:0.005},\n      {n:'Work Injury Insurance',   cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20132%'},\n      {n:'Maternity Insurance',     cr:0.005, er:0},\n    ]\n  },\n  cd:{\n    label:'Chengdu', period:'', bMin:4588, bMax:22938, inds:INDS_STD,\n    rows:[\n      {n:'Pension Insurance',         cr:0.16,   er:0.08},\n      {n:'Medical Insurance',         cr:0.0675, er:0.02},\n      {n:'Unemployment Insurance',    cr:0.006,  er:0.004},\n      {n:'Maternity Insurance',       cr:0.008,  er:0},\n      {n:'Work Injury Insurance',     cr:'ind',  er:0, cr_note:'Employer rate floats 0.2%\u20131.9%'},\n      {n:'Serious Illness Insurance', cr_pct:0.0075, er:0, cr_note:'Employer 0.75% of base; employee exempt'},\n    ]\n  },\n  hz:{\n    label:'Hangzhou', period:'', bMin:4986, bMax:25299, inds:INDS_HZ,\n    rows:[\n      {n:'Pension Insurance',       cr:0.16,  er:0.08},\n      {n:'Medical Insurance',       cr:0.095, er:0.02, cr_note:'Includes maternity insurance'},\n      {n:'Maternity Insurance',     cr:0.008, er:0},\n      {n:'Unemployment Insurance',  cr:0.005, er:0.005},\n      {n:'Work Injury Insurance',   cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20131.5%'},\n    ]\n  },\n  cq:{\n    label:'Chongqing', period:'', bMin:4404, bMax:22017, inds:INDS_CQ,\n    rows:[\n      {n:'Pension Insurance',         cr:0.16,  er:0.08},\n      {n:'Medical Insurance',         cr:0.08,  er:0.02},\n      {n:'Serious Illness Insurance', cr:0.015, er:0, er_fixed:5, cr_note:'Employer 1.5%; employee \u00a55\/mo fixed'},\n      {n:'Unemployment Insurance',    cr:0.005, er:0.005},\n      {n:'Maternity Insurance',       cr:0.005, er:0},\n      {n:'Work Injury Insurance',     cr:'ind', er:0, cr_note:'Employer rate floats 0.3%\u20132.2%'},\n    ]\n  },\n  wh:{\n    label:'Wuhan', period:'', bMin:4498, bMax:22488, inds:INDS_STD,\n    rows:[\n      {n:'Pension Insurance',         cr:0.16,  er:0.08},\n      {n:'Medical Insurance',         cr:0.08,  er:0.02},\n      {n:'Unemployment Insurance',    cr:0.007, er:0.003},\n      {n:'Maternity Insurance',       cr:0.007, er:0},\n      {n:'Work Injury Insurance',     cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20131.9%'},\n      {n:'Serious Illness Insurance', cr:0,     er:0, er_fixed:7, cr_note:'Employee \u00a57\/mo; employer exempt'},\n    ]\n  },\n  su:{\n    label:'Suzhou', period:'', bMin:4952, bMax:24762, inds:INDS_SU,\n    zones:[\n      { label:'Regular Zone', rows:[\n        {n:'Pension Insurance',         cr:0.16,  er:0.08},\n        {n:'Medical Insurance',         cr:0.07,  er:0.02},\n        {n:'Unemployment Insurance',    cr:0.005, er:0.005},\n        {n:'Maternity Insurance',       cr:0.008, er:0},\n        {n:'Work Injury Insurance',     cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20130.9%'},\n        {n:'Serious Illness Insurance', cr:0,     er:0, er_fixed:5, cr_note:'Employee \u00a55\/mo; employer exempt'},\n      ]},\n      { label:'Industrial Park (SIP)', rows:[\n        {n:'Pension Insurance',         cr:0.16,  er:0.08},\n        {n:'Medical Insurance',         cr:0.05,  er:0.02, cr_note:'SIP employer rate 5%'},\n        {n:'Unemployment Insurance',    cr:0.005, er:0.005},\n        {n:'Maternity Insurance',       cr:0.008, er:0},\n        {n:'Work Injury Insurance',     cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20130.9%'},\n        {n:'Serious Illness Insurance', cr:0,     er:0, er_fixed:5, cr_note:'Employee \u00a55\/mo; employer exempt'},\n      ]},\n    ]\n  },\n  xa:{\n    label:\"Xi'an\", period:'', inds:INDS_STD,\n    bases:{\n      general:{min:4650, max:23250, label:'Pension\/Unemployment\/Work Injury'},\n      medical:{min:4990, max:24948, label:'Medical'},\n    },\n    rows:[\n      {n:'Pension Insurance',         cr:0.16,  er:0.08,  bk:'general'},\n      {n:'Medical Insurance',         cr:0.08,  er:0.02,  bk:'medical', cr_note:'Includes maternity insurance (1%)'},\n      {n:'Unemployment Insurance',    cr:0.007, er:0.003, bk:'general'},\n      {n:'Work Injury Insurance',     cr:'ind', er:0,     bk:'general', cr_note:'Employer rate floats 0.2%\u20131.9%'},\n      {n:'Serious Illness Insurance', cr:0,     er:0,     bk:'general', cr_fixed:6.4, er_fixed:1.6, cr_note:'Employer \u00a56.4\/mo; employee \u00a51.6\/mo'},\n    ]\n  },\n  nj:{\n    label:'Nanjing', period:'', bMin:4952, bMax:24762, inds:INDS_STD,\n    rows:[\n      {n:'Pension Insurance',         cr:0.16,  er:0.08},\n      {n:'Medical Insurance',         cr:0.07,  er:0.02},\n      {n:'Unemployment Insurance',    cr:0.005, er:0.005},\n      {n:'Maternity Insurance',       cr:0.008, er:0},\n      {n:'Work Injury Insurance',     cr:'ind', er:0, cr_note:'Employer rate floats 0.2%\u20131.9%'},\n      {n:'Serious Illness Insurance', cr:0,     er:0, cr_fixed:10, er_fixed:10, cr_note:'Employer \u00a510\/mo; employee \u00a510\/mo'},\n    ]\n  },\n  cs:{\n    label:'Changsha', period:'', bMin:4072, bMax:20361, inds:INDS_CS,\n    rows:[\n      {n:'Pension Insurance',       cr:0.16,  er:0.08},\n      {n:'Medical Insurance',       cr:0.087, er:0.02, cr_note:'Includes maternity insurance (0.7%)'},\n      {n:'Unemployment Insurance',  cr:0.007, er:0.003},\n      {n:'Work Injury Insurance',   cr:'ind', er:0, cr_note:'Employer rate floats 0.6%\u20132.6%'},\n    ]\n  },\n};\n\n\/\/ \u2500\u2500 Utilities \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction clamp(v, mn, mx){\n  if(v < mn) return {val:mn, flag:'floor'};\n  if(mx !== null && v > mx) return {val:mx, flag:'ceil'};\n  return {val:v, flag:null};\n}\nfunction isMultiCity(c){ return c==='sz'||c==='gz'||c==='xa'; }\n\nfunction onHpf(side){\n  const v = parseInt(document.getElementById('inp-hpf-'+side).value);\n  document.getElementById('lbl-hpf-'+side).textContent = v+'%';\n  document.getElementById('sv-hpf-'+side).textContent  = v+'%';\n  render();\n}\n\nfunction onCity(){\n  const c = document.getElementById('sel-city').value;\n  document.getElementById('f-tier').style.display = c==='sz' ? '' : 'none';\n  document.getElementById('f-su').style.display   = c==='su' ? '' : 'none';\n  buildInds();\n  if(indHelpOpen){ indHelpOpen=false; toggleIndHelp(); }\n  render();\n}\n\nfunction buildInds(){\n  const c = document.getElementById('sel-city').value;\n  const d = CITY[c];\n  const sel = document.getElementById('sel-ind');\n  const prev = parseInt(sel.value)||0;\n  sel.innerHTML = '';\n  d.inds.forEach(([name],i)=>{ const o=document.createElement('option'); o.value=i; o.textContent=OC_X(name); sel.appendChild(o); });\n  sel.value = Math.min(prev, d.inds.length-1);\n}\n\n\/\/ \u2500\u2500 Industry help panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst IND_DESC = {\n  STD:[\n    ['Cat. 1 (0.2%)','Software, internet, finance, education, consulting, law firms, accounting firms \u2014 pure office-based industries'],\n    ['Cat. 2 (0.4%)','Wholesale & retail, hospitality, real estate, property management, general trading companies'],\n    ['Cat. 3 (0.7%)','Light manufacturing (food, textiles, printing), electronics assembly, transportation & logistics'],\n    ['Cat. 4 (0.9%)','Machinery manufacturing, auto parts, timber processing, low-risk chemicals'],\n    ['Cat. 5 (1.1%)','Steel & non-ferrous metal smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (1.3%)','Petroleum refining, medium-risk chemicals, glass, ceramics'],\n    ['Cat. 7 (1.6%)','Coal mining, ferrous metal ore extraction, fireworks & explosives manufacturing'],\n    ['Cat. 8 (1.9%)','Asbestos & toxic mineral extraction, radioactive ore mining, and other high-risk industries'],\n  ],\n  GD:[\n    ['Cat. 1 (0.2%)','Software, internet, finance, education, consulting, law firms \u2014 pure office-based industries'],\n    ['Cat. 2 (0.4%)','Wholesale & retail, real estate, property management, general trading'],\n    ['Cat. 3 (0.6%)','Light manufacturing (food, textiles, electronics assembly), general services'],\n    ['Cat. 4 (0.8%)','Machinery manufacturing, auto parts, timber processing, transportation & logistics'],\n    ['Cat. 5 (0.9%)','Steel smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (1.0%)','Medium-risk petroleum\/chemical industry, glass, ceramics'],\n    ['Cat. 7 (1.2%)','Coal mining, medium-to-high-risk extractive industries'],\n    ['Cat. 8 (1.4%)','High-risk mining, toxic & hazardous chemicals, and other high-risk industries'],\n  ],\n  TJ:[\n    ['Cat. 1 (0.2%)','Software, internet, finance, education, consulting \u2014 pure office-based industries'],\n    ['Cat. 2 (0.4%)','Wholesale & retail, real estate, property management, general trading'],\n    ['Cat. 3 (0.6%)','Light manufacturing, food, textiles, electronics assembly'],\n    ['Cat. 4 (0.8%)','Machinery manufacturing, auto parts, transportation & logistics'],\n    ['Cat. 5 (1.0%)','Steel smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (1.2%)','Medium-risk chemicals, glass, ceramics'],\n    ['Cat. 7 (1.6%)','Coal mining, medium-to-high-risk extractive industries'],\n    ['Cat. 8 (2.0%)','High-risk mining, toxic & hazardous chemicals, and other high-risk industries'],\n  ],\n  HZ:[\n    ['Cat. 1 (0.2%)','Software, internet, finance, education, consulting \u2014 pure office-based industries'],\n    ['Cat. 2 (0.4%)','Wholesale & retail, real estate, general trading'],\n    ['Cat. 3 (0.7%)','Light manufacturing, food, textiles, electronics assembly'],\n    ['Cat. 4 (0.9%)','Machinery manufacturing, transportation & logistics'],\n    ['Cat. 5 (1.1%)','Steel smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (1.3%)','Medium-risk chemicals, glass, ceramics'],\n    ['Cat. 7 (1.5%)','Mining, high-risk manufacturing, and other high-risk industries'],\n  ],\n  SU:[\n    ['Cat. 1 (0.2%)','Software, internet, finance, education, consulting \u2014 pure office-based industries'],\n    ['Cat. 2 (0.4%)','Wholesale & retail, real estate, general services'],\n    ['Cat. 3 (0.7%)','Light manufacturing, food, textiles, electronics assembly, transportation'],\n    ['Cat. 4 (0.9%)','Machinery manufacturing, chemicals, mining, and higher-risk industries'],\n  ],\n  CQ:[\n    ['Cat. 1 (0.3%)','Software, internet, finance, education, consulting \u2014 pure office-based industries'],\n    ['Cat. 2 (0.5%)','Wholesale & retail, real estate, general trading'],\n    ['Cat. 3 (0.8%)','Light manufacturing, food, textiles, electronics assembly'],\n    ['Cat. 4 (1.0%)','Machinery manufacturing, auto parts, transportation & logistics'],\n    ['Cat. 5 (1.3%)','Steel smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (1.5%)','Medium-risk chemicals, glass, ceramics'],\n    ['Cat. 7 (1.8%)','Coal mining, medium-to-high-risk extractive industries'],\n    ['Cat. 8 (2.2%)','High-risk mining, toxic & hazardous chemicals, and other high-risk industries'],\n  ],\n  CS:[\n    ['Cat. 1 (0.6%)','Software, internet, finance, education, consulting \u2014 pure office-based industries'],\n    ['Cat. 2 (0.9%)','Wholesale & retail, real estate, general trading'],\n    ['Cat. 3 (1.2%)','Light manufacturing, food, textiles, electronics assembly'],\n    ['Cat. 4 (1.4%)','Machinery manufacturing, transportation & logistics'],\n    ['Cat. 5 (1.7%)','Steel smelting, rubber products, heavy machinery'],\n    ['Cat. 6 (2.1%)','Medium-risk chemicals, glass, ceramics'],\n    ['Cat. 7 (2.4%)','Coal mining, medium-to-high-risk extractive industries'],\n    ['Cat. 8 (2.6%)','High-risk mining, toxic & hazardous chemicals, and other high-risk industries'],\n  ],\n};\n\nfunction getCityIndKey(c){\n  if(c==='gz'||c==='sz') return 'GD';\n  if(c==='tj') return 'TJ';\n  if(c==='hz') return 'HZ';\n  if(c==='su') return 'SU';\n  if(c==='cq') return 'CQ';\n  if(c==='cs') return 'CS';\n  return 'STD';\n}\n\nlet indHelpOpen = false;\nfunction toggleIndHelp(){\n  const el = document.getElementById('ind-help');\n  indHelpOpen = !indHelpOpen;\n  if(!indHelpOpen){ el.style.display='none'; return; }\n  const c = document.getElementById('sel-city').value;\n  const key = getCityIndKey(c);\n  const rows = IND_DESC[key];\n  let html = '<strong>How to choose your industry category?<\/strong><br>The work injury insurance rate is determined by your industry\\'s risk level, and is registered by your company with the local social security bureau. Typical examples per category:';\n  html += '<table><thead><tr><th>Category<\/th><th>Typical Industries (for reference)<\/th><\/tr><\/thead><tbody>';\n  rows.forEach(([r,d])=>{ html+=`<tr><td>${r}<\/td><td>${d}<\/td><\/tr>`; });\n  html += '<\/tbody><\/table><div style=\"margin-top:6px;color:#aaa\">\u2605 When in doubt, most internet, finance, education, and consulting companies qualify for Category 1 (lowest rate).<\/div>';\n  el.innerHTML = html;\n  el.style.display = 'block';\n}\n\n\/\/ \u2500\u2500 Render \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction render(){\n  const c     = document.getElementById('sel-city').value;\n  const sal   = parseFloat(document.getElementById('inp-sal').value)||0;\n  const iIdx  = parseInt(document.getElementById('sel-ind').value)||0;\n  const hpfCR = parseInt(document.getElementById('inp-hpf-c').value)\/100;\n  const hpfER = parseInt(document.getElementById('inp-hpf-e').value)\/100;\n  const d     = CITY[c];\n  const iRate = d.inds[iIdx][1];\n  const multi = isMultiCity(c);\n  const warnEl = document.getElementById('el-warn');\n  const warnMsgs = [];\n  const capFlags = {};\n\n  function getBase(row){\n    if(!multi){\n      const r = clamp(sal, d.bMin, d.bMax);\n      if(r.flag==='floor'&&!capFlags.floor){ capFlags.floor=true; warnMsgs.push('Salary \u00a5'+sal.toLocaleString()+' is below the contribution base floor \u2014 all schemes calculated at floor \u00a5'+d.bMin.toLocaleString()); }\n      if(r.flag==='ceil' &&!capFlags.ceil ){ capFlags.ceil =true; warnMsgs.push('Salary \u00a5'+sal.toLocaleString()+' exceeds the contribution base ceiling \u2014 all schemes calculated at ceiling \u00a5'+d.bMax.toLocaleString()); }\n      return {val:r.val, flag:r.flag, bMin:d.bMin, bMax:d.bMax, bLabel:''};\n    } else {\n      const bDef = d.bases[row.bk||Object.keys(d.bases)[0]];\n      const r = clamp(sal, bDef.min, bDef.max);\n      return {val:r.val, flag:r.flag, bMin:bDef.min, bMax:bDef.max, bLabel:bDef.label};\n    }\n  }\n\n  function computeRows(rows){\n    return rows.map(row=>{\n      if(row.cr_fixed!==undefined||row.er_fixed!==undefined){\n        return {row, base:null, baseFlag:null, bMin:null, bMax:null, bLabel:'',\n                cr:0, ca:row.cr_fixed||0, ea:row.er_fixed||0, extra:0, isInd:false, isFixed:true};\n      }\n      if(row.cr_pct!==undefined){\n        const b = getBase(row);\n        const ca = Math.round(b.val * row.cr_pct * 100)\/100;\n        return {row, base:b.val, baseFlag:b.flag, bMin:b.bMin, bMax:b.bMax, bLabel:b.bLabel,\n                cr:row.cr_pct, ca, ea:0, extra:0, isInd:false, isFixed:false, isPct:true};\n      }\n      if(row.er_fixed!==undefined && row.cr!==undefined && row.cr!==0){\n        const b = getBase(row);\n        const cr2 = row.cr==='ind' ? iRate : row.cr;\n        const ca2 = Math.round(b.val * cr2 * 100)\/100;\n        return {row, base:b.val, baseFlag:b.flag, bMin:b.bMin, bMax:b.bMax, bLabel:b.bLabel,\n                cr:cr2, ca:ca2, ea:row.er_fixed, extra:0, isInd:row.cr==='ind', isFixed:false, mixFixed:true};\n      }\n      const b  = getBase(row);\n      const cr = row.cr==='ind' ? iRate : row.cr;\n      const ca = Math.round(b.val * cr * 100)\/100;\n      const ea = row.er===null ? null : Math.round(b.val * row.er * 100)\/100;\n      const extra = row.er_extra||0;\n      return {row, base:b.val, baseFlag:b.flag, bMin:b.bMin, bMax:b.bMax, bLabel:b.bLabel,\n              cr, ca, ea:ea===null?null:ea+extra, extra, isInd:row.cr==='ind', isFixed:false};\n    });\n  }\n\n  let html='', rows, cT, eT;\n\n  if(c==='sz'){\n    const tIdx = parseInt(document.getElementById('sel-tier').value)||0;\n    const tier = CITY.sz.tiers[tIdx];\n    rows = computeRows(tier.rows);\n    ({cT,eT} = totals(rows));\n    showCaps(warnEl, rows, sal, true);\n    html += buildTable('Shenzhen \u00b7 '+tier.label, CITY.sz.period, rows, cT, eT, iRate, true);\n  } else if(c==='su'){\n    const zIdx = parseInt(document.getElementById('sel-su').value)||0;\n    const zone = CITY.su.zones[zIdx];\n    rows = computeRows(zone.rows);\n    ({cT,eT} = totals(rows));\n    if(warnMsgs.length){warnEl.style.display='block';warnEl.innerHTML=OC_X(warnMsgs.map(w=>'\u26a0 '+w).join('<br>'));}else warnEl.style.display='none';\n    html += buildTable('Suzhou \u00b7 '+zone.label, d.period, rows, cT, eT, iRate, false);\n  } else {\n    rows = computeRows(d.rows);\n    ({cT,eT} = totals(rows));\n    if(multi) showCaps(warnEl, rows, sal, true);\n    else { if(warnMsgs.length){warnEl.style.display='block';warnEl.innerHTML=OC_X(warnMsgs.map(w=>'\u26a0 '+w).join('<br>'));}else warnEl.style.display='none'; }\n    html += buildTable(d.label, d.period, rows, cT, eT, iRate, multi);\n  }\n\n  const hpfC  = Math.round(sal * hpfCR * 100)\/100;\n  const hpfE  = Math.round(sal * hpfER * 100)\/100;\n  const hpfT  = Math.round((hpfC+hpfE)*100)\/100;\n  html += buildHpfCard(sal, hpfCR, hpfER, hpfC, hpfE, hpfT);\n\n  const totalC = Math.round((cT + hpfC)*100)\/100;\n  const employerCost = Math.round((sal + totalC)*100)\/100;\n  const totalE = Math.round((eT + hpfE)*100)\/100;\n  const takeHome = Math.round((sal - totalE)*100)\/100;\n  \/\/ v2: answer-first output \u2014 hero, bar, split panels; detail table folds away\n  window.__oc = {city:d.label, sal, employerCost, takeHome, totalC, cT, eT, hpfC, hpfE,\n                 ind:d.inds[iIdx][0], hpfCR, hpfER};\n  const asEl = document.getElementById('oc-assump');\n  if(asEl) asEl.textContent = OC_X(d.inds[iIdx][0].replace(\/\\s*\\(\/,' work-injury (') + ' \u00b7 housing fund ' + (hpfCR*100).toFixed(0) + '% + ' + (hpfER*100).toFixed(0) + '%');\n  let out = buildHero(sal, employerCost, totalC)\n          + buildViz(sal, cT, eT, hpfC, hpfE, employerCost, takeHome)\n          + buildSplit(sal, cT, eT, hpfC, hpfE, employerCost, takeHome)\n          + '<div class=\"oc-rates\"><div class=\"oc-rates-h\"><span class=\"oc-rates-t\">\ud83d\udccb Full rate table & contribution bases<\/span><span class=\"oc-rates-s\">The official 2025\u201326 rates behind this calculation.<\/span><\/div><div class=\"oc-rates-body\">'\n          + html + buildFoot(c) + '<\/div><\/div>';\n  document.getElementById('el-out').innerHTML = OC_X(out);\n}\n\nfunction totals(rows){\n  let cT=0, eT=0;\n  rows.forEach(r=>{ cT+=r.ca; if(r.ea!==null) eT+=r.ea; });\n  cT=Math.round(cT*100)\/100; eT=Math.round(eT*100)\/100;\n  return {cT, eT};\n}\n\nfunction showCaps(el, rows, sal, isM){\n  if(!isM){el.style.display='none';return;}\n  const caps=[], seen=new Set();\n  rows.forEach(r=>{\n    if(r.baseFlag&&!seen.has(r.bLabel)){\n      seen.add(r.bLabel);\n      const dir = r.baseFlag==='floor' ? 'below' : 'above';\n      const lim = r.baseFlag==='floor' ? 'floor' : 'ceiling';\n      const amt = r.baseFlag==='floor' ? r.bMin : r.bMax;\n      caps.push('Salary \u00a5'+sal.toLocaleString()+' is '+dir+' the '+r.bLabel+' contribution base '+lim+' \u2014 calculated at \u00a5'+amt.toLocaleString());\n    }\n  });\n  if(caps.length){el.style.display='block';el.innerHTML=OC_X(caps.map(w=>'\u26a0 '+w).join('<br>'));}\n  else el.style.display='none';\n}\n\nfunction buildTable(label, period, rows, cT, eT, iRate, isM){\n  let h=`<div class=\"result-card\"><div class=\"card-head\"><span>${label}<\/span>`;\n  if(period) h+=`<span class=\"badge\">${period}<\/span>`;\n  if(isM) h+='<span class=\"badge-note\">Each scheme has independent contribution base limits<\/span>';\n  h+=`<\/div><div class=\"tbl-wrap\"><table><thead><tr>\n    <th style=\"width:28%\">Scheme<\/th>\n    <th style=\"width:16%\" class=\"r\">Base (\u00a5)<\/th>\n    <th style=\"width:13%\" class=\"r\">Employer %<\/th>\n    <th style=\"width:14%\" class=\"r\">Employer (\u00a5)<\/th>\n    <th style=\"width:11%\" class=\"r\">Employee %<\/th>\n    <th style=\"width:18%\" class=\"r\">Employee (\u00a5)<\/th>\n  <\/tr><\/thead><tbody>`;\n\n  rows.forEach(r=>{\n    let crStr, erStr, baseCell, eaCell;\n    if(r.isFixed){\n      crStr    = r.row.cr_fixed ? '\u00a5'+r.row.cr_fixed+'\/mo' : '<span class=\"dash\">\u2014<\/span>';\n      erStr    = r.row.er_fixed ? '\u00a5'+r.row.er_fixed+'\/mo' : '<span class=\"dash\">\u2014<\/span>';\n      baseCell = '<span class=\"dash\">\u2014<\/span>';\n      eaCell   = (r.ea>0) ? r.ea.toFixed(2) : '<span class=\"dash\">\u2014<\/span>';\n    } else if(r.mixFixed){\n      crStr    = (r.cr*100).toFixed(2)+'%';\n      erStr    = '\u00a5'+r.row.er_fixed+'\/mo';\n      baseCell = r.base.toLocaleString();\n      eaCell   = r.ea.toFixed(2);\n    } else {\n      crStr    = r.isPct ? (r.cr*100).toFixed(2)+'%' : r.isInd ? (r.cr*100).toFixed(2)+'%' : (r.row.cr*100).toFixed(2)+'%';\n      erStr    = r.row.er===null ? '<span class=\"dash\">\u2014<\/span>' : (r.row.er*100).toFixed(2)+'%';\n      baseCell = r.base===null ? '<span class=\"dash\">\u2014<\/span>' : r.base.toLocaleString();\n      if(r.baseFlag==='floor') baseCell+='<span class=\"capped\"> \u2191floor<\/span>';\n      else if(r.baseFlag==='ceil') baseCell+='<span class=\"capped\"> \u2193ceiling<\/span>';\n      if(r.ea===null)    eaCell='<span class=\"dash\">\u2014<\/span>';\n      else if(r.extra>0) eaCell=r.ea.toFixed(2)+'<span class=\"sub\">incl. \u00a5'+r.extra+' serious illness<\/span>';\n      else               eaCell=r.ea.toFixed(2);\n    }\n    const note = r.row.cr_note ? `<span class=\"sub\">${r.row.cr_note}<\/span>` : '';\n    h+=`<tr><td>${r.row.n}${note}<\/td><td class=\"r\">${baseCell}<\/td><td class=\"r\">${crStr}<\/td><td class=\"r\">${r.ca.toFixed(2)}<\/td><td class=\"r\">${erStr}<\/td><td class=\"r\">${eaCell}<\/td><\/tr>`;\n  });\n\n  h+=`<tr class=\"tot\"><td colspan=\"3\">Social Insurance Subtotal<\/td><td class=\"r\">${cT.toFixed(2)}<\/td><td><\/td><td class=\"r\">${eT.toFixed(2)}<\/td><\/tr><\/tbody><\/table><\/div><\/div>`;\n  return h;\n}\n\nfunction buildHpfCard(sal, hpfCR, hpfER, hpfC, hpfE, hpfT){\n  return `<div class=\"result-card\">\n    <div class=\"card-head\">\n      <span>Housing Provident Fund (HPF)<\/span>\n      <span class=\"badge-green\">Contribution base = monthly salary<\/span>\n      <span class=\"badge-note\">Rate negotiated between employer & employee, 5%\u201312%<\/span>\n    <\/div>\n    <div class=\"hpf-body\">\n      <div class=\"hpf-grid\">\n        <div class=\"hpf-item\">\n          <div class=\"lbl\">Contribution Base<\/div>\n          <div class=\"val\">\u00a5 ${sal.toLocaleString()}<\/div>\n        <\/div>\n        <div class=\"hpf-item\">\n          <div class=\"lbl\">Employer Contribution (${(hpfCR*100).toFixed(0)}%)<\/div>\n          <div class=\"val\">\u00a5 ${hpfC.toFixed(2)}<\/div>\n        <\/div>\n        <div class=\"hpf-item\">\n          <div class=\"lbl\">Employee Contribution (${(hpfER*100).toFixed(0)}%)<\/div>\n          <div class=\"val\">\u00a5 ${hpfE.toFixed(2)}<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"hpf-note\">\u2605 In practice, the HPF contribution base is based on the prior year's average monthly salary and may be subject to local upper\/lower limits. This calculator uses current gross salary as the base for reference only.<\/div>\n    <\/div>\n  <\/div>`;\n}\n\nconst FOOT_NOTES = {\n  bj:'Beijing (from Jul 2025): Unified contribution base \u00a57,162\u2013\u00a535,811. Work injury rate floats 0.2%\u20131.9%. Employee medical includes \u00a53\/mo serious illness supplement.',\n  sh:'Shanghai (Jul 2025 \u2013 Jun 2026): Unified base \u00a57,460\u2013\u00a537,302. Work injury rate floats 0.2%\u20131.9%. Medical insurance includes maternity.',\n  gz:'Guangzhou (Jul 2025 \u2013 Jun 2026): Pension base \u00a55,510\u2013\u00a527,549; Medical \u00a56,234\u2013\u00a531,179; Unemployment \u00a52,500\u2013\u00a541,112; Work injury floor \u00a52,500 (no ceiling). Medical includes maternity.',\n  sz:'Shenzhen: Pension base \u00a54,775\u2013\u00a527,549; Medical\/Maternity \u00a56,727\u2013\u00a533,633; Unemployment\/Work Injury \u00a52,520\u2013\u00a544,625.',\n  tj:\"Tianjin (Oct 2025 \u2013 Dec 2026): Unified base \u00a55,124\u2013\u00a525,620. Work injury rate floats 0.2%\u20132%. Employer pays maternity; employee exempt.\",\n  cd:'Chengdu: Unified base \u00a54,588\u2013\u00a522,938. Work injury rate floats 0.2%\u20131.9%. Serious illness insurance: employer 0.75% of base; employee exempt.',\n  hz:'Hangzhou: Unified base \u00a54,986\u2013\u00a525,299. Work injury rate floats 0.2%\u20131.5%. Medical (9.5%) includes maternity; separate maternity scheme at 0.8%.',\n  cq:'Chongqing: Unified base \u00a54,404\u2013\u00a522,017. Work injury rate floats 0.3%\u20132.2%. Serious illness: employer 1.5% + employee \u00a55\/mo fixed.',\n  wh:'Wuhan: Unified base \u00a54,498\u2013\u00a522,488. Work injury rate floats 0.2%\u20131.9%. Serious illness insurance: employee \u00a57\/mo; employer exempt.',\n  su:\"Suzhou: Unified base \u00a54,952\u2013\u00a524,762. Work injury rate floats 0.2%\u20130.9%. Serious illness: employee \u00a55\/mo. Regular zone employer medical 7%; SIP (Industrial Park) employer medical 5%.\",\n  xa:\"Xi'an: Pension\/unemployment\/work injury base \u00a54,650\u2013\u00a523,250; Medical base \u00a54,990\u2013\u00a524,948. Medical includes maternity (1%). Serious illness: employer \u00a56.4\/mo + employee \u00a51.6\/mo.\",\n  nj:'Nanjing: Unified base \u00a54,952\u2013\u00a524,762. Work injury rate floats 0.2%\u20131.9%. Serious illness: employer \u00a510\/mo + employee \u00a510\/mo.',\n  cs:'Changsha: Unified base \u00a54,072\u2013\u00a520,361. Work injury rate floats 0.6%\u20132.6%. Medical (8.7%) includes maternity insurance (0.7%).',\n};\nfunction buildFoot(c){\n  return `<div class=\"foot\">\n    <span>\u2605 ${FOOT_NOTES[c]||''}<\/span>\n    <span>\u2605 All figures are for reference only. Actual rates are subject to official announcements from local social security bureaus. Work injury rates shown are benchmark rates and may be adjusted by the bureau based on the employer's injury record.<\/span>\n    <span>\u2605 The HPF contribution rate (5%\u201312%) is negotiated between the employer and employee. The actual contribution base is based on the prior year's average monthly salary, and some cities set monthly contribution caps. Please verify with your local HPF management centre.<\/span>\n  <\/div>`;\n}\n\n\/\/ \u2500\u2500 v2 renderers \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst OC_USD = 0.140;   \/\/ indicative RMB\u2192USD, update occasionally\nlet OC_VIEW = 'm';      \/\/ m = monthly, y = annual\nfunction ocMoney(v){ return '\u00a5' + v.toLocaleString('en-US',{minimumFractionDigits:0,maximumFractionDigits:0}); }\nfunction ocMoney2(v){ return '\u00a5 ' + v.toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2}); }\nfunction ocView(v){ OC_VIEW=v; render(); }\n\nfunction buildHero(sal, employerCost, totalC){\n  const mult = OC_VIEW==='y' ? 12 : 1;\n  const unit = OC_VIEW==='y' ? '\/year' : '\/month';\n  const pct  = sal>0 ? (totalC\/sal*100) : 0;\n  const usd  = employerCost*mult*OC_USD;\n  const ratio = sal>0 ? (employerCost\/sal) : 0;\n  const cityT = OC_X(window.__oc.city);\n  let sub;\n  if(OC_LANG==='hans'){\n    sub = `\u5728<b>${cityT}<\/b>\u53d1 <b>${ocMoney(sal)}<\/b> \u6708\u85aa,\u5b9e\u9645\u652f\u51fa <b>${ocMoney(employerCost)}<\/b> \u2014\u2014 \u6bcf\u53d1 1 \u5143\u5de5\u8d44\u8981\u82b1 <b>${ratio.toFixed(2)} \u5143<\/b>(\u96c7\u4e3b\u8d1f\u62c5 +${pct.toFixed(1)}%) \u00b7 \u2248 <b>US$${Math.round(usd).toLocaleString()}<\/b>${OC_VIEW==='y'?'\/\u5e74':'\/\u6708'} <span style=\"opacity:.7\">(\u53c2\u8003)<\/span>`;\n  } else if(OC_LANG==='hant'){\n    sub = `\u5728<b>${cityT}<\/b>\u767c <b>${ocMoney(sal)}<\/b> \u6708\u85aa,\u5be6\u969b\u652f\u51fa <b>${ocMoney(employerCost)}<\/b> \u2014\u2014 \u6bcf\u767c 1 \u5143\u5de5\u8cc7\u8981\u82b1 <b>${ratio.toFixed(2)} \u5143<\/b>(\u50f1\u4e3b\u8ca0\u64d4 +${pct.toFixed(1)}%) \u00b7 \u2248 <b>US$${Math.round(usd).toLocaleString()}<\/b>${OC_VIEW==='y'?'\/\u5e74':'\/\u6708'} <span style=\"opacity:.7\">(\u53c3\u8003)<\/span>`;\n  } else {\n    sub = `To pay a <b>${ocMoney(sal)}<\/b> gross salary in <b>${window.__oc.city}<\/b>, you actually spend <b>${ocMoney(employerCost)}<\/b> \u2014 that's <b>\u00a5${ratio.toFixed(2)} for every \u00a51<\/b> of salary (+${pct.toFixed(1)}% employer load) &nbsp;\u00b7&nbsp; \u2248 <b>US$${Math.round(usd).toLocaleString()}<\/b>${unit} <span style=\"opacity:.7\">(indicative)<\/span>`;\n  }\n  return `<div class=\"oc-hero\">\n    <div class=\"oc-hero-top\">\n      <span class=\"oc-hero-label\">Total employer cost \u00b7 ${cityT}<\/span>\n      <span class=\"oc-view\">\n        <button type=\"button\" class=\"${OC_VIEW==='m'?'on':''}\" onclick=\"ocView('m')\">Monthly<\/button>\n        <button type=\"button\" class=\"${OC_VIEW==='y'?'on':''}\" onclick=\"ocView('y')\">Annual<\/button>\n      <\/span>\n    <\/div>\n    <div class=\"oc-hero-num\">${ocMoney(employerCost*mult)}<span style=\"font-size:.42em;font-weight:600;opacity:.85\"> ${unit}<\/span><\/div>\n    <div class=\"oc-hero-sub\">${sub}<\/div>\n  <\/div>`;\n}\n\nfunction buildViz(sal, cT, eT, hpfC, hpfE, employerCost, takeHome){\n  const m = OC_VIEW==='y' ? 12 : 1;\n  const empDed = Math.round((eT+hpfE)*100)\/100;      \/\/ \u5458\u5de5\u6263\u7f34\n  const hidden = Math.round((cT+hpfC)*100)\/100;      \/\/ \u96c7\u4e3b\u9690\u85cf\u6210\u672c\n  const hidPct = sal>0 ? (hidden\/sal*100).toFixed(1) : '0';\n  \/\/ \u73af\u5f62:\u96c7\u4e3b\u603b\u6210\u672c\u6784\u6210\n  const p = v => employerCost>0 ? Math.max(0.5, v\/employerCost*100) : 0;\n  const p1=p(sal), p2=p(cT), p3=Math.max(0, 100-p1-p2);\n  const donut = `\n  <svg width=\"150\" height=\"150\" viewBox=\"0 0 150 150\" role=\"img\" aria-label=\"Employer cost composition\">\n    <circle cx=\"75\" cy=\"75\" r=\"56\" fill=\"none\" stroke=\"#e7f0fb\" stroke-width=\"22\"\/>\n    <circle cx=\"75\" cy=\"75\" r=\"56\" fill=\"none\" stroke=\"#4574c9\" stroke-width=\"22\" pathLength=\"100\"\n      stroke-dasharray=\"${p1} ${100-p1}\" stroke-dashoffset=\"25\" transform=\"rotate(0 75 75)\"\/>\n    <circle cx=\"75\" cy=\"75\" r=\"56\" fill=\"none\" stroke=\"#1aa06a\" stroke-width=\"22\" pathLength=\"100\"\n      stroke-dasharray=\"${p2} ${100-p2}\" stroke-dashoffset=\"${25-p1}\"\/>\n    <circle cx=\"75\" cy=\"75\" r=\"56\" fill=\"none\" stroke=\"#0053c8\" stroke-width=\"22\" pathLength=\"100\"\n      stroke-dasharray=\"${p3} ${100-p3}\" stroke-dashoffset=\"${25-p1-p2}\"\/>\n    <text x=\"75\" y=\"70\" text-anchor=\"middle\" font-size=\"17\" font-weight=\"800\" fill=\"#22344E\">+${hidPct}%<\/text>\n    <text x=\"75\" y=\"88\" text-anchor=\"middle\" font-size=\"10\" fill=\"#6B7A90\">employer load<\/text>\n  <\/svg>`;\n  \/\/ \u51b0\u5c71 v2:\u6df1\u6d77\u6e10\u53d8\u886c\u6258\u767d\u8272\u51b0\u5c71,\u6c34\u4e0b\u51b0\u4f53\u534a\u900f\u660e\u6d45\u84dd,\u5bf9\u6bd4\u6e05\u6670\n  const berg = `\n  <svg width=\"190\" height=\"200\" viewBox=\"0 0 190 200\" role=\"img\" aria-label=\"Iceberg of hiring cost\">\n    <defs>\n      <linearGradient id=\"ocSky\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0\" stop-color=\"#eaf4fe\"\/><stop offset=\"1\" stop-color=\"#cfe4f9\"\/>\n      <\/linearGradient>\n      <linearGradient id=\"ocSea\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n        <stop offset=\"0\" stop-color=\"#5d8cc7\"\/><stop offset=\"1\" stop-color=\"#2c5290\"\/>\n      <\/linearGradient>\n      <clipPath id=\"ocClip\"><rect x=\"0\" y=\"0\" width=\"190\" height=\"200\" rx=\"14\"\/><\/clipPath>\n    <\/defs>\n    <g clip-path=\"url(#ocClip)\">\n      <rect x=\"0\" y=\"0\" width=\"190\" height=\"78\" fill=\"url(#ocSky)\"\/>\n      <rect x=\"0\" y=\"76\" width=\"190\" height=\"124\" fill=\"url(#ocSea)\"\/>\n      <rect x=\"0\" y=\"74\" width=\"190\" height=\"3\" fill=\"#ffffff\" opacity=\".7\"\/>\n      <path d=\"M14 96 q7 -5 14 0 q7 5 14 0\" stroke=\"#ffffff\" stroke-width=\"1.6\" fill=\"none\" opacity=\".35\"\/>\n      <path d=\"M148 88 q7 -5 14 0 q7 5 14 0\" stroke=\"#ffffff\" stroke-width=\"1.6\" fill=\"none\" opacity=\".3\"\/>\n      <polygon points=\"95,16 130,76 60,76\" fill=\"#ffffff\" stroke=\"#9cbfe4\" stroke-width=\"1\"\/>\n      <polygon points=\"95,16 112,48 78,54\" fill=\"#e2eefb\"\/>\n      <polygon points=\"112,48 130,76 95,76\" fill=\"#cadff4\"\/>\n      <polygon points=\"60,76 130,76 142,112 102,184 66,132\" fill=\"#bdd7f1\" opacity=\".85\"\/>\n      <polygon points=\"95,76 130,76 142,112 102,184\" fill=\"#8fb4de\" opacity=\".8\"\/>\n      <polygon points=\"66,132 102,184 78,120\" fill=\"#d8e8f8\" opacity=\".55\"\/>\n      <path d=\"M34 150 c6 -6 14 -6 18 0 c-4 6 -12 6 -18 0 z M52 148 l7 -5 v10 z\" fill=\"#1f3d6b\" opacity=\".55\"\/>\n      <path d=\"M150 132 c5 -5 12 -5 15 0 c-3 5 -10 5 -15 0 z M165 130 l6 -4 v8 z\" fill=\"#1f3d6b\" opacity=\".5\"\/>\n      <circle cx=\"118\" cy=\"40\" r=\"3.4\" fill=\"#e8930c\"\/>\n      <line x1=\"118\" y1=\"40\" x2=\"182\" y2=\"40\" stroke=\"#e8930c\" stroke-width=\"1.7\" stroke-dasharray=\"3 3\"\/>\n      <circle cx=\"126\" cy=\"94\" r=\"3.4\" fill=\"#ffd28a\"\/>\n      <line x1=\"126\" y1=\"94\" x2=\"182\" y2=\"94\" stroke=\"#ffd28a\" stroke-width=\"1.7\" stroke-dasharray=\"3 3\"\/>\n      <circle cx=\"108\" cy=\"158\" r=\"3.4\" fill=\"#ffd28a\"\/>\n      <line x1=\"108\" y1=\"158\" x2=\"182\" y2=\"158\" stroke=\"#ffd28a\" stroke-width=\"1.7\" stroke-dasharray=\"3 3\"\/>\n    <\/g>\n  <\/svg>`;\n  return `<div class=\"oc-viz\">\n    <div class=\"oc-vcard\">\n      <div class=\"oc-vh\">The iceberg of hiring cost<\/div>\n      <div class=\"oc-vs\">What everyone sees is the salary \u2014 the employer's real burden sits below the surface.<\/div>\n      <div class=\"oc-berg\">\n        ${berg}\n        <div class=\"oc-blab\">\n          <div class=\"oc-bl sky\"><div class=\"t\">Above water \u2014 employee take-home (before IIT)<\/div><div class=\"v\">${ocMoney(takeHome*m)}<\/div><\/div>\n          <div class=\"oc-bl line\"><div class=\"t\">At the waterline \u2014 employee contributions<\/div><div class=\"v\">${ocMoney(empDed*m)}<\/div><\/div>\n          <div class=\"oc-bl deep\"><div class=\"t\">Below the surface \u2014 extra employer cost<\/div><div class=\"v\">${ocMoney(hidden*m)} <span style=\"font-size:11.5px;font-weight:600;color:#6B7A90\">= +${hidPct}% on salary<\/span><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"oc-vcard\">\n      <div class=\"oc-vh\">Where your money goes<\/div>\n      <div class=\"oc-vs\">Composition of the total employer cost.<\/div>\n      <div class=\"oc-donut\">\n        ${donut}\n        <div class=\"oc-dleg\">\n          <span><i class=\"oc-dot\" style=\"background:#4574c9\"><\/i>Gross salary <b>${ocMoney(sal*m)}<\/b><\/span>\n          <span><i class=\"oc-dot\" style=\"background:#1aa06a\"><\/i>Social insurance <b>${ocMoney(cT*m)}<\/b><\/span>\n          <span><i class=\"oc-dot\" style=\"background:#0053c8\"><\/i>Housing fund <b>${ocMoney(hpfC*m)}<\/b><\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>`;\n}\n\nfunction buildSplit(sal, cT, eT, hpfC, hpfE, employerCost, takeHome){\n  const m = OC_VIEW==='y' ? 12 : 1;\n  const u = OC_VIEW==='y' ? '\/yr' : '\/mo';\n  return `<div class=\"oc-split\">\n    <div class=\"oc-panel emp\">\n      <div class=\"oc-panel-h\"><span class=\"oc-ico\">\ud83c\udfe2<\/span> What you pay (employer)<\/div>\n      <div class=\"oc-row\"><span>Gross salary<\/span><span>${ocMoney2(sal*m)}<\/span><\/div>\n      <div class=\"oc-row plus\"><span>+ Social insurance (employer share)<\/span><span>${ocMoney2(cT*m)}<\/span><\/div>\n      <div class=\"oc-row plus\"><span>+ Housing fund (employer share)<\/span><span>${ocMoney2(hpfC*m)}<\/span><\/div>\n      <div class=\"oc-total\"><span>Total employer cost ${u}<\/span><span>${ocMoney2(employerCost*m)}<\/span><\/div>\n    <\/div>\n    <div class=\"oc-panel stf\">\n      <div class=\"oc-panel-h\"><span class=\"oc-ico\">\ud83d\udc64<\/span> What your employee gets<\/div>\n      <div class=\"oc-row\"><span>Gross salary<\/span><span>${ocMoney2(sal*m)}<\/span><\/div>\n      <div class=\"oc-row minus\"><span>\u2212 Social insurance (employee share)<\/span><span>${ocMoney2(eT*m)}<\/span><\/div>\n      <div class=\"oc-row minus\"><span>\u2212 Housing fund (employee share)<\/span><span>${ocMoney2(hpfE*m)}<\/span><\/div>\n      <div class=\"oc-total\"><span>Take-home ${u} (before IIT)<\/span><span>${ocMoney2(takeHome*m)}<\/span><\/div>\n      <span class=\"oc-tag\">Individual income tax not included \u2014 it varies with deductions<\/span>\n    <\/div>\n  <\/div>`;\n}\n\nfunction ocLead(){\n  const email = (document.getElementById('oc-email').value||'').trim();\n  const hp    = (document.getElementById('oc-web').value||'').trim();\n  const btn   = document.getElementById('oc-btn');\n  if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(email)){ alert(OC_LANG==='hans'?'\u8bf7\u8f93\u5165\u6709\u6548\u7684\u5de5\u4f5c\u90ae\u7bb1\u3002':OC_LANG==='hant'?'\u8acb\u8f38\u5165\u6709\u6548\u7684\u5de5\u4f5c\u90f5\u7bb1\u3002':'Please enter a valid work email.'); return; }\n  const st = window.__oc || {};\n  btn.disabled = true; btn.textContent = OC_LANG==='hans'?'\u53d1\u9001\u4e2d\u2026':OC_LANG==='hant'?'\u767c\u9001\u4e2d\u2026':'Sending\u2026';\n  fetch('https:\/\/zhixin.xlh1997.com\/o2c\/calc-lead', {\n    method:'POST', headers:{'Content-Type':'application\/json'},\n    body: JSON.stringify({ email:email, website:hp, city:st.city||'', salary:st.sal||0,\n      industry:st.ind||'', employer_cost:st.employerCost||0, take_home:st.takeHome||0,\n      hpf:( (st.hpfCR*100)||0 )+'% \/ '+( (st.hpfER*100)||0 )+'%',\n      page:'social-insurance-calculator' })\n  }).then(r=>r.json()).then(j=>{\n    if(j && j.ok){\n      document.getElementById('oc-cta').innerHTML =\n        OC_X('<div class=\"oc-cta-ok\">\u2705 <b>Request received.<\/b> A consultant will email your tailored all-in quote for '\n        + (st.city||'your city') + ' within 1 business day. Meanwhile, feel free to ask Mia (bottom-right) anything about hiring in China.<\/div>');\n    } else { throw new Error((j&&j.error)||'failed'); }\n  }).catch(e=>{\n    btn.disabled=false; btn.textContent=OC_X('Get my exact quote \u2192');\n    alert('Sorry, something went wrong ('+e.message+'). You can also reach us via the \"Get a free quote\" button at the top of the page.');\n  });\n}\n\nif(OC_LANG!=='en'){\n  const _c=document.getElementById('o2c-calc');\n  if(_c){ _c.innerHTML = applyDict(_c.innerHTML); }\n}\nbuildInds();\nrender();\n\n<\/script>\n\n\n<div id=\"oc-how\" class=\"notranslate\" translate=\"no\"><h2>How this calculator works<\/h2><ul><li><strong>Employer cost<\/strong> = gross salary + employer social insurance (pension, medical, unemployment, work injury, maternity) + employer housing fund \u2014 in most cities <strong>30\u201340% on top of salary<\/strong>.<\/li><li><strong>Employee take-home<\/strong> = gross salary \u2212 employee social insurance \u2212 employee housing fund (before individual income tax).<\/li><li>Rates and bases are the <strong>2025\u201326 policy year<\/strong> figures from each city\\u2019s social security bureau, incl. Shenzhen hukou tiers and Suzhou Industrial Park.<\/li><\/ul><p>Full rate tables and methodology: <a href=\"\/china-social-insurance-and-housing-provident-fund-calculator\/\">China Social Insurance &amp; Housing Provident Fund Calculator (2026 Updated)<\/a>.<\/p><\/div>\n\n\n<div id=\"calc-faq\" class=\"notranslate\" translate=\"no\">\n<h2>Frequently asked questions<\/h2>\n<h3>How much does it really cost to hire an employee in China?<\/h3>\n<p>Plan for roughly <strong>30\u201340% on top of the gross salary<\/strong>. For example, a \u00a515,000\/month salary in Beijing costs the employer about \u00a519,725\/month once mandatory social insurance and housing fund contributions are added (2025\u201326 rates).<\/p>\n<h3>What does the employer pay on top of salary?<\/h3>\n<p>Five mandatory insurances \u2014 pension (16%), medical (\u22489\u201310%), unemployment, work injury and maternity \u2014 plus the housing provident fund (5%\u201312%, negotiated). Exact rates and contribution bases depend on the city.<\/p>\n<h3>How much of the gross salary does the employee take home?<\/h3>\n<p>After the employee's own social insurance and housing fund contributions, take-home is typically <strong>84\u201390% of gross before individual income tax<\/strong>. IIT then depends on personal deductions.<\/p>\n<h3>Are the rates the same in every Chinese city?<\/h3>\n<p>No. Each city sets its own contribution bases and some rates \u2014 Shenzhen has hukou-based tiers, Suzhou Industrial Park has a special medical rate, and cities update their base floors\/ceilings every July. This calculator covers 13 major cities with 2025\u201326 policy-year data.<\/p>\n<\/div>\n<script type=\"application\/ld+json\" id=\"faq-jsonld\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[\n{\"@type\":\"Question\",\"name\":\"How much does it really cost to hire an employee in China?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Plan for roughly 30-40% on top of the gross salary. For example, a 15,000 RMB\/month salary in Beijing costs the employer about 19,725 RMB\/month once mandatory social insurance and housing fund contributions are added (2025-26 rates).\"}},\n{\"@type\":\"Question\",\"name\":\"What does the employer pay on top of salary in China?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Five mandatory insurances - pension (16%), medical (about 9-10%), unemployment, work injury and maternity - plus the housing provident fund (5%-12%, negotiated). Exact rates and contribution bases depend on the city.\"}},\n{\"@type\":\"Question\",\"name\":\"How much of the gross salary does the employee take home in China?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"After the employee's own social insurance and housing fund contributions, take-home is typically 84-90% of gross before individual income tax. IIT then depends on personal deductions.\"}},\n{\"@type\":\"Question\",\"name\":\"Are social insurance rates the same in every Chinese city?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Each city sets its own contribution bases and some rates - Shenzhen has hukou-based tiers, Suzhou Industrial Park has a special medical employer rate, and cities update their contribution base floors and ceilings every July.\"}}\n]}\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Free China employment cost calculator: enter a gross salary and instantly see the total employer cost (salary + social insurance + housing fund) and employee take-home pay. 13 major cities, 2025-26 official rates.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[88,89],"class_list":["post-1431","post","type-post","status-publish","format-standard","hentry","category-recruitment-and-employment","tag-china-social-insurance","tag-housing-fund"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>China Labor Cost Calculator \u2014 Employer Cost &amp; Take-Home at a Glance - Out2China<\/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:\/\/out2china.com\/zh\/china-employment-cost-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"China Labor Cost Calculator \u2014 Employer Cost &amp; Take-Home at a Glance - Out2China\" \/>\n<meta property=\"og:description\" content=\"Free China employment cost calculator: enter a gross salary and instantly see the total employer cost (salary + social insurance + housing fund) and employee take-home pay. 13 major cities, 2025-26 official rates.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/out2china.com\/zh\/china-employment-cost-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"Out2China\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-17T11:11:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-17T15:12:03+00:00\" \/>\n<meta name=\"author\" content=\"Out2China\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Out2China\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/\"},\"author\":{\"name\":\"Out2China\",\"@id\":\"https:\\\/\\\/out2china.com\\\/#\\\/schema\\\/person\\\/a2f1eb32a06c230823edbd17f9c177fe\"},\"headline\":\"China Labor Cost Calculator \u2014 Employer Cost &#038; Take-Home at a Glance\",\"datePublished\":\"2026-07-17T11:11:49+00:00\",\"dateModified\":\"2026-07-17T15:12:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/\"},\"wordCount\":463,\"keywords\":[\"China Social Insurance\",\"Housing Fund\"],\"articleSection\":[\"Recruitment and Employment\"],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/\",\"url\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/\",\"name\":\"China Labor Cost Calculator \u2014 Employer Cost & Take-Home at a Glance - Out2China\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/out2china.com\\\/#website\"},\"datePublished\":\"2026-07-17T11:11:49+00:00\",\"dateModified\":\"2026-07-17T15:12:03+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/out2china.com\\\/#\\\/schema\\\/person\\\/a2f1eb32a06c230823edbd17f9c177fe\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/out2china.com\\\/china-employment-cost-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/out2china.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"China Labor Cost Calculator \u2014 Employer Cost &#038; Take-Home at a Glance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/out2china.com\\\/#website\",\"url\":\"https:\\\/\\\/out2china.com\\\/\",\"name\":\"Out2China\",\"description\":\"A professional human resources partner for global companies in China\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/out2china.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/out2china.com\\\/#\\\/schema\\\/person\\\/a2f1eb32a06c230823edbd17f9c177fe\",\"name\":\"Out2China\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g\",\"caption\":\"Out2China\"},\"sameAs\":[\"https:\\\/\\\/out2china.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"China Labor Cost Calculator \u2014 Employer Cost & Take-Home at a Glance - Out2China","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:\/\/out2china.com\/zh\/china-employment-cost-calculator\/","og_locale":"zh_CN","og_type":"article","og_title":"China Labor Cost Calculator \u2014 Employer Cost & Take-Home at a Glance - Out2China","og_description":"Free China employment cost calculator: enter a gross salary and instantly see the total employer cost (salary + social insurance + housing fund) and employee take-home pay. 13 major cities, 2025-26 official rates.","og_url":"https:\/\/out2china.com\/zh\/china-employment-cost-calculator\/","og_site_name":"Out2China","article_published_time":"2026-07-17T11:11:49+00:00","article_modified_time":"2026-07-17T15:12:03+00:00","author":"Out2China","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Out2China","Est. reading time":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/#article","isPartOf":{"@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/"},"author":{"name":"Out2China","@id":"https:\/\/out2china.com\/#\/schema\/person\/a2f1eb32a06c230823edbd17f9c177fe"},"headline":"China Labor Cost Calculator \u2014 Employer Cost &#038; Take-Home at a Glance","datePublished":"2026-07-17T11:11:49+00:00","dateModified":"2026-07-17T15:12:03+00:00","mainEntityOfPage":{"@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/"},"wordCount":463,"keywords":["China Social Insurance","Housing Fund"],"articleSection":["Recruitment and Employment"],"inLanguage":"zh-Hans"},{"@type":"WebPage","@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/","url":"https:\/\/out2china.com\/china-employment-cost-calculator\/","name":"China Labor Cost Calculator \u2014 Employer Cost & Take-Home at a Glance - Out2China","isPartOf":{"@id":"https:\/\/out2china.com\/#website"},"datePublished":"2026-07-17T11:11:49+00:00","dateModified":"2026-07-17T15:12:03+00:00","author":{"@id":"https:\/\/out2china.com\/#\/schema\/person\/a2f1eb32a06c230823edbd17f9c177fe"},"breadcrumb":{"@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/out2china.com\/china-employment-cost-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/out2china.com\/china-employment-cost-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/out2china.com\/"},{"@type":"ListItem","position":2,"name":"China Labor Cost Calculator \u2014 Employer Cost &#038; Take-Home at a Glance"}]},{"@type":"WebSite","@id":"https:\/\/out2china.com\/#website","url":"https:\/\/out2china.com\/","name":"\u76f4\u8fbe\u4e2d\u56fd","description":"\u4e2d\u56fd\u5168\u7403\u5316\u516c\u53f8\u7684\u4e13\u4e1a\u4eba\u529b\u8d44\u6e90\u5408\u4f5c\u4f19\u4f34","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/out2china.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/out2china.com\/#\/schema\/person\/a2f1eb32a06c230823edbd17f9c177fe","name":"\u76f4\u8fbe\u4e2d\u56fd","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/secure.gravatar.com\/avatar\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bd37c80c37f7bf71531c85499e5023e1832dd18ffbbeaeb3de975544347b1f51?s=96&d=mm&r=g","caption":"Out2China"},"sameAs":["https:\/\/out2china.com"]}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"Out2China","author_link":"https:\/\/out2china.com\/zh\/author\/str1dev\/"},"_links":{"self":[{"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/posts\/1431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/comments?post=1431"}],"version-history":[{"count":12,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/posts\/1431\/revisions"}],"predecessor-version":[{"id":1446,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/posts\/1431\/revisions\/1446"}],"wp:attachment":[{"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/media?parent=1431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/categories?post=1431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/out2china.com\/zh\/wp-json\/wp\/v2\/tags?post=1431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}