1 Star 0 Fork 1

matrixgo2023 / salary

forked from theajack / salary 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

easy-salary (工资计算器)

在线使用

扫描或wx搜索收入详情计算器使用小程序

适用于2022年新个税计算法的工资计算器,包含基础月薪、年终奖、五险一金、个人所得税计算

0. 使用

1. 安装使用

npm i easy-salary
import Salary from 'easy-salary';

const result = (new Salary({
    salary: 10000,
    // ... 其他配置
})).calculate();
// 传入的配置参数
interface Config {
    salary?: number; // 基础工资
    specialAdditionalDeduction?: number; // 每月专项附加扣除 租房扣除
    yearEndAwardsNumber?: number; // 年终奖月数
    yearEndAwards?: number; // 年终奖 0表示默认使用 年终奖月数
    insuranceAndFundBase?: number; // 五险一金计算基础,为上一年度平均薪资,默认为salary
    startingSalary?: number; // 个税起征点
    insuranceAndFundRate?: IInsuranceAndFund; // 五险一金个人部分
    insuranceAndFundRateOfCompany?: IInsuranceAndFund; // 五险一金公司部分
    extraBonus?: number | number[]; // 每月额外奖金
    housingFundRange?: IHousingFundRange; // 公积金计算上下限
}
interface IInsuranceAndFund {
    pension?: number; // 养老保险
    medicalInsurance?: number; // 医疗保险
    unemploymentInsurance?: number; // 失业保险
    injuryInsurance?: number; // 工伤保险
    maternityInsurance?: number; // 生育保险
    housingFund?: number; // 住房公积金
    supplementaryFund?: number; // 补充住房公积金
}
interface IHousingFundRange {
    min: number;
    max: number;
}

详细配置与返回结果请参考 声明文件在线使用

cdn 引入

<script src="https://cdn.jsdelivr.net/npm/easy-salary/easy-salary.min.js"></script>
<script>
const result = (new window.Salary({
    salary: 10000,
    // ... 其他配置
})).calculate();
</script>

2. 在线使用

点击前往

1. 工资算法

分为基本工资和年终奖

1.1 基本工资

几个概念

累计应纳税所得额 = 累计应税收入 - 累计免税收入 - 累计减除费用 - 累计专项扣除 - 累计专项附加扣除 - 累计依法确定的其他扣除

累计应税收入 = 月薪 * 月数

累计免税收入 = 无 (这部分不清楚,目前当0处理)

累计减除费用 = 起征点 (上海为5000) * 月数

累计专项扣除 = 五险一金 * 月数 = 月薪 * (五险一金比例) * 月数

累计专项附加扣除 = 专项扣除数值 * 月数 (就是个税app里填的 包括租房、房贷、赡养、子女教育等专项附加扣除)

累计依法确定的其他扣除 = 无(这部分不清楚,目前当0处理)

所以

累计应纳税所得额 = (月薪 - 0 - 起征点 - 月薪 * 五险一金比例 - 专项扣除数值 - 0) * 月数

当月个税 = (累计应纳税所得额 * 预扣率 - 速算扣除数)- 累计减免税额【这部分不清楚,目前当0处理】 - 累计已缴税额

税后收入 = 月薪 - 月薪 * 五险一金比例 - 当月个税

预扣率与速算扣除数表

const levels = [
    {value: 36000, rate: 0.03, deduction: 0},
    {value: 144000, rate: 0.1, deduction: 2520},
    {value: 300000, rate: 0.2, deduction: 16920},
    {value: 420000, rate: 0.25, deduction: 31920},
    {value: 660000, rate: 0.3, deduction: 52920},
    {value: 960000, rate: 0.35, deduction: 85920},
    {value: 0, rate: 0.45, deduction: 181920},
];

规则是累计应纳税所得额

不超过36000,预扣率=3%,速算扣除数=0,

不超过144000,预扣率=10%,速算扣除数=2520,

后续依次类推

五险一金比例

上海市:

养老保险单位缴费费率为20%,个人缴费费率为8%;

医疗保险单位缴费比例为10%,个人缴费比例为2%;

工伤保险单位缴费比例为0.2-1.9%,个人不缴费;

生育保险单位缴费比例为1%,个人不缴费;

失业保险单位缴费比例为1%,个人缴费比例为0.5%;

住房公积金单位和个人缴费比例各为7%。

如果有补充公积金的话另算: 一般补充为5%

住房公积金缴存基数范围

上海市:住房公积金和补充住房公积金缴存基数最高不超过34188元, 最低不低于2590

也就是工资超过 34188 按照 34188计算,低于 2590 按 2590计算

1.2 年终奖部分

年终奖部分计税规则

1、发放年终奖的当月工资高于个税起征点时,年终奖扣税方式为:年终奖乘税率-速算扣除数,税率是按年终奖/12作为“应纳税所得额”对应的税率。

2、当月工资低于个税起征点元时,年终奖个人所得税=(年终奖-(个税起征点-月工资))乘税率-速算扣除数,税率是按年终奖-(个税起征点-月工资)除以12作为“应纳税所得额”对应的税率。

年终奖应纳税所得额与税率和速算扣除数关系

表如下

const levels = [
    {value: 3000, rate: 0.03, deduction: 0},
    {value: 12000, rate: 0.1, deduction: 210},
    {value: 25000, rate: 0.2, deduction: 1410},
    {value: 35000, rate: 0.25, deduction: 2660},
    {value: 55000, rate: 0.3, deduction: 4410},
    {value: 80000, rate: 0.35, deduction: 7360},
    {value: 0, rate: 0.45, deduction: 15160},
];

规则是年终奖应纳税所得额

不超过3000,预扣率=3%,速算扣除数=0,

不超过12000,预扣率=10%,速算扣除数=210,

后续依次类推

综上整理出公式

年终奖税前 = 月薪 * 年终奖系数

当 月薪 > 起征点:

年终奖税率、速算扣除数 = 查表(年终奖税前 / 12)

年终奖个人所得税 = 年终奖税前 * 税率 - 速算扣除数

当 月薪 < 起征点

年终奖税率、速算扣除数 = 查表( 年终奖 - ( 个税起征点 - 月薪 ))/ 12)

年终奖个人所得税 = (年终奖税前 - ( 个税起征点 - 月薪 ) ) * 税率 - 速算扣除数

然后年终奖税后收入

年终奖税后收入 = 年终奖税前 - 年终奖个人所得税

1.3 示例

综上,那么可以举个例子

假设张三月工资3万(抬高工资是为了更方便体现累计跳档),年终奖系数为2个月,五险一金是 22.5%,每月专项附加扣除为1500

调用 easy-salary 计算

calculateSalary({
    salary: 30000, // 月薪
    specialAdditionalDeduction: 1500, // 每月专项附加扣除 租房扣除
    yearEndAwardsNumber: 2, // 年终奖月数
    startingSalary: 5000, // 个税起征点
    insuranceAndFundRate: {
        pension: 0.08, // 养老保险 个人缴费费率为8%;
        medicalInsurance: 0.02, // 医疗保险 个人缴费比例为2%;
        unemploymentInsurance: 0.005, // 失业保险 个人缴费比例为0.5%;
        housingFund: 0.07, // 住房公积金 7%
        supplementaryFund: 0.05, // 补充公积金 5%
    },
})

得到结果:

{
    salaryAfterTax: [22747.5, 22747.5, 21750, 21575, 21575, 21575, 21575, 21575, 20900, 19900, 19900, 19900],
    totalSalaryAfterTax: 309930,
    awardsAfterTax: 54210,
    insuranceAndFund: housingFund: 2100,
    medicalInsurance: 600,
    pension: 2400,
    supplementaryFund: 1500,
    totalFund: 6750,
    totalHousingFund: 3600,
    unemploymentInsurance: 150,
    salaryTax: [502.5, 502.5, 1500, 1675, 1675, 1675, 1675, 1675, 2350, 3350, 3350, 3350],
    salaryPreTax: 30000,
    totalSalaryPreTax: 420000,
    awardsPreTax: 60000,
    awardsTax: 5790,
}

其中主要的有

salaryAfterTax 表示12个月税后收入

totalSalaryAfterTax 表示年税后总收入(含年终)

awardsAfterTax 年终奖税后收入

salaryTax 12个月的个税数值

接下来分解一下计算过程

首先上公式:

累计应纳税所得额 = (月薪 - 0 - 起征点 - 月薪 * 五险一金比例 - 专项扣除数值 - 0) * 月数

当月个税 = (累计应纳税所得额 * 预扣率 - 速算扣除数)- 累计减免税额【这部分不清楚,目前当0处理】 - 累计已缴税额

税后收入 = 月薪 - 月薪 * 五险一金比例 - 当月个税

则1月份

累计应纳税所得额 = (30000 - 0 - 5000 - 30000 * 0.225 - 1500 - 0) * 1 = 16750

当月个税 = 16750 * 0.03 - 0 - 0 = 502.5

税后收入 = 30000 - 30000 * 0.225 - 502.5 = 22747.5

2月份

累计应纳税所得额 = (30000 - 0 - 5000 - 30000 * 0.225 - 1500 - 0) * 2 = 33500

当月个税 = 33500 * 0.03 - 0 - 502.5 = 502.5

税后收入 = 30000 - 30000 * 0.225 - 502.5 = 22747.5

2月份

累计应纳税所得额 = (30000 - 0 - 5000 - 30000 * 0.225 - 1500 - 0) * 3 = 50250

当月个税 = 50250 * 0.1 - 2520 - 1005 = 1500 (超过了36000,发生跳档)

税后收入 = 30000 - 30000 * 0.225 - 1500 = 21750

后续依次类推

<!-- * @Author: tackchen * @Date: 2022-09-15 10:34:56 * @Description: Coding something --> The MIT License (MIT) Copyright (c) 2022 - present Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

工资计算器(2022年最新计税规则) 展开 收起
TypeScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/matrixgo2023/salary.git
git@gitee.com:matrixgo2023/salary.git
matrixgo2023
salary
salary
master

搜索帮助