{"slug":"china-social-insurance","name":"China Social Insurance & Housing Fund 五险一金 (employee + employer cost)","category":"earn","tags":["income","tax"],"tagline":"What actually comes out of a China salary — and what the employer pays on top — with the contribution-base floor/ceiling applied correctly.","endpoint":"https://xearno.tools/api/v1/tools/china-social-insurance","page":"https://xearno.tools/t/china-social-insurance","description":"Computes China social insurance + housing fund (五险一金) for both the employee deduction and the total cost to the employer, applying the city contribution-base floor and ceiling that general calculators skip. Contributions are charged on the contribution base — your prior-year average wage clamped between a city floor (~60% of local average) and ceiling (300%) — not on this month’s gross. Rates and bases differ by city and reset each July, so they are yours to set; the defaults are illustrative 2025 Beijing figures.","inputSchema":{"type":"object","properties":{"gross":{"description":"Monthly gross salary Used as the contribution base after clamping to the city floor/ceiling. If your official contribution base differs from gross, enter that instead.","type":"number","minimum":0,"default":30000},"city":{"description":"City Sets the contribution-base floor and ceiling (the ~60%/300%-of-local-average band) — the numbers you would otherwise look up. Pick “Other” to enter your own.","type":"string","enum":["beijing","shanghai","tianjin","guangzhou","shenzhen","dongguan","foshan","zhuhai","nanjing","suzhou","wuxi","changzhou","nantong","hangzhou","ningbo","wenzhou","fuzhou","xiamen","jinan","qingdao","chengdu","chongqing","wuhan","changsha","zhengzhou","nanchang","xian","hefei","kunming","guiyang","nanning","taiyuan","shijiazhuang","shenyang","dalian","harbin","other"],"default":"beijing"},"baseFloor":{"description":"Base floor 下限 override (optional) Leave 0 to use your city’s floor. Override for a city not listed.","type":"number","minimum":0,"default":0},"baseCeiling":{"description":"Base ceiling 上限 override (optional) Leave 0 to use your city’s ceiling. Salary above the ceiling is not charged.","type":"number","minimum":0,"default":0},"employeeSocialRate":{"description":"Employee social-insurance rate (%) Sum of the employee’s pension (8%) + medical (~2%) + unemployment (~0.5%). Work-injury and maternity are employer-only.","type":"number","minimum":0,"maximum":30,"default":10.5},"employerSocialRate":{"description":"Employer social-insurance rate (%) Sum of employer pension (16%) + medical (~9%) + unemployment (~0.5%) + work-injury (~0.2–1.9%). City-dependent.","type":"number","minimum":0,"maximum":50,"default":26.7},"housingFundRate":{"description":"Housing fund rate 公积金 (each side) (%) Employer-chosen 5–12%, matched by the employee. Shanghai caps at 7%.","type":"number","minimum":0,"maximum":12,"default":12}},"required":[],"additionalProperties":false},"methodology":["Contributions are charged on the contribution base = the prior-year average monthly wage, clamped to a city floor (~60% of local average wage) and ceiling (300%). Salary above the ceiling is not charged; below the floor, the floor is used. General calculators skip this clamp and apply rates to gross — the most common China-payroll error.","Employee deduction = base × (employee social rate + housing fund rate). Employer cost added on top = base × (employer social rate + housing fund rate). Pension is 16% employer / 8% employee nationwide; medical, unemployment, work-injury, and the housing-fund percentage are city-set. Work-injury and maternity are employer-only.","Rates, floors, and ceilings are city- and year-specific and reset each July (medical sometimes on the calendar year); some cities differ by hukou (e.g. Shenzhen adds ~1% employer pension for local hukou) and use different bases per insurance (Guangzhou). This tool takes them as inputs so the number is always current — enter your city’s published figures rather than trusting an embedded table."],"usage":"POST https://xearno.tools/api/v1/tools/china-social-insurance with a JSON body matching inputSchema."}