@casomoltd/paye-calc (英语)
英国PAYE带回家的薪酬计算器. 办理2023-24至2026-27年收入税,国家保险,养老金,和学生贷款.
安装
npm install @casomoltd/paye-calc
Npm 登记簿上的公示——无认证或 .npmrc 需要配置 .
使用量
import {
TakeHomePay,
GrossAnnual,
NetAnnual,
PensionPercent,
PensionBasis,
StudentLoanPlan,
} from '@casomoltd/paye-calc';
const calc = new TakeHomePay('2025-26', 'rUK');
calc.setSalary(GrossAnnual(55000));
calc.setPension({
basis: PensionBasis.AutoEnrolment,
contribution: PensionPercent(5),
});
calc.setStudentLoanPlans(
new Set([StudentLoanPlan.Plan2]),
);
calc.net; // annual take-home
calc.incomeTax; // annual income tax
calc.nationalInsurance; // annual NI
calc.pensionDeduction; // annual pension contribution
calc.studentLoanDeduction; // annual student loan repayment
calc.effectiveTaxRate; // total deductions as % of gross
calc.marginalTaxRate; // tax rate on next £1
calc.annualAllowance(); // the pension annual allowance and any excess
// Reverse calculation — find gross from target net
calc.setSalary(NetAnnual(35000));
calc.gross; // gross needed for £35k net
payAt(gross, inputs) 给一个没有计算器的呼叫者提供与纯函数相同的数字(如何运作) (中文(简体) ).
特征
- 所得税 个人津贴接力器超过100克的渐进带。 支持苏格兰费率.
- 国家保险 ——主阈值,主和高率.
- 养恤金 自动入学(只有合格收入)、雇主/净工资、工资牺牲、个人/救济来源以及国民保健体系分级缴款.
- 学生贷款 - 计划1、2、4、5和研究生,同时制定多项计划.
- 税法 ——标准,K代码,BR,NT,0T,作为HMRC的PAYE手册(PAYE11025)的D代码定义了它们(D0和D1;SD0到SD3在苏格兰),以及苏格兰和威尔士的前缀.
- 净额对毛额 —— 二进制搜索倒数计算,每当其他输入变化时都会重新解析(为什么) (中文(简体) ).
- 养恤金收入 —— 说
grossFor(targetNet, year, region): 养恤金总收入在所得税之后仅留下目标,包括个人津贴扣减器。 而不是反向带回家:支付的养恤金不包含国家保险、学生贷款或缴款. - 国家养恤金 —— 说
fullNewStatePension(year)新的国家养恤金的全额税率,一个纳税年度、每周和每年;以及statePensionYearly(weekly)为预测的每周数字。 只有全额费率;一个人应该支付什么取决于其国家保险记录. - 免税儿童保育 —— 说
taxFreeChildcare(year):经调整的净收入限额,如果超过这一限额,父母将直接失去净收入限额,每个子女和每个残疾儿童每年的上限上调. - 英格兰工作父母免费托儿服务 —— 说
freeChildcareEngland(year):经调整的净收入限额,超过该限额的父母或其伴侣没有资格。 除了免税儿童保育之外,还有一项计划,这是它自己的条例所引用的. - 最低养恤金年龄 —— 说
minimumPensionAge(on)根据《2004年财政法》的规定,正常最低养老金年龄为提取日期,55至2028年4月5日,57至2028年4月6日,适用于军警部门以外的任何计划.minimumPensionAgeRise()名字的时代和日出.minimumPensionAgeFor(right, on)鉴于成员计划赋予他们的权利,是成员自己的最低法定年龄,并随着年龄的提高而受到保护(规则) (中文(简体) ). - 年度津贴 —— 说
annualAllowance()计算器上:接线器后的津贴、当年的养恤金投入和任何超额(这算什么) (中文(简体) ). 设定受益额的某一期间投入低于 养恤金输入期。 。 。 . - 纳税年度终了 —— 说
TaxYearEnd(一) 任何已公布或不公布的纳税年度,按其结束的日历年列出;taxYearEndFor(date)把约会变成约会,taxYearStartDate(end)财务报告和审定财务报表taxYearEndDate(end)4月6日和4月5日闭幕taxYearEndOf(year)财务报告和审定财务报表taxYearLabel(end)转出TaxYear标签(为什么) (中文(简体) ). - 养恤金输入期 —— 说
definedBenefitInput(period)hMRC的养老金投入PensionInputPeriod:其纳税年度为TaxYearEnd及其设定受益安排ArrangementValues),每层为单层(平地)PTM053301 (英语)) (中文(简体) ). 2016-17年之前的一段时期,FIRST_TAX_YEAR_PENSION_INPUT_PERIOD,被拒绝;refuseBeforePensionInputPeriods拒绝打电话者阅读自己的周期(为什么) (中文(简体) ). - 细目 —— 说
taxBreakdown, (中文(简体) ),niBreakdown,以及studentLoanBreakdown详细产出。 每个税目都包含一个kind: 津贴,一个K码的加薪(为什么),或乐队;只有乐队一行带有rate财务报告和审定财务报表taxPaid打开的行是TaxOpeningRow,从TAX_OPENING_ROW_NAMES; 一个乐队的名字来自TAX_BAND_NAMES,以及taxBandByName, (中文(简体) ),basicRateBand财务报告和审定财务报表higherRateBand在一年的配置中找到一个.TaxCode.isKCode说明代码是否是 K 代码 . - 减员机 —— 说
personalAllowanceTaperEnd即津贴已用完的收入,personalAllowanceTaperBand录音机的乐队坐在那里personalAllowanceTaperRate所得税的有效税率;INCOME_PER_POUND_WITHDRAWN是提取一英镑的收入. - 期间 —— 说
PERIODS_PER_YEAR说每个有多少个Period一年,还有PERIOD_LABELS每个名字. - 薪金 - 负或非无限
GrossAnnual或者说NetAnnual丢出一个RangeError,作为grossFor其目标为零;净目标为毛零. - 钱 —— 说
roundPence弹到一分钱,和uplift(amount, rate)以小数率提高一个数额.
纳税年份
| 年份 | 英国 | 苏格兰 |
|---|---|---|
| 2023-24 (英语) | 对 | 对 |
| 2024-25 (英语) | 对 | 对 |
| 2025-26 (简体中文) | 对 | 对 |
| 2026-27 (中文(简体) ) | 对 | 对 |
文档
docs/how-it-works.md——规范图书馆的规则,从工资年/纳税年分拆起,解决工资表的消费者欠下什么.docs/verification.md如何对照已公布的资料来源核对数字.
发展
npm run check # lint + typecheck + test
npm run build # compile to dist/
npm test # vitest
npm run test:watch # vitest watch mode
许可证
AGPL-3.0-仅见 自由主义. 版权 2026 Casomo Ltd.
没有任何关联例外: 将这个库与你自己的代码合并, 合并的作品也是AGPL, 让人们通过网络使用它, 迫使您提供它的来源 。 收费不是引发这种情况的原因,不收费也不是豁免。 商业许可证可用于需要关闭的用途——通过 casomoltd.com (英语)。 。 。 .