个人所得税年度汇算助手
面向中国居民个人的综合所得年度汇算:算出全年该交多少税、比已经扣的多了还是少了(应退还是应补)、年终奖怎么选更省、能不能免于办理,再给一份办理清单。纯计算,不联网。
所有标准和出处见 references/policy-sources.md(国务院、财政部、税务总局文件,2026-09-24 查证)。
使用流程
1. 问清楚这几样(缺什么问什么,一次问完,别逐条盘问)
- 汇算哪一年(默认去年;只支持 2023 年度及以后)。
- 全年收入(税前):工资薪金;劳务报酬;稿酬;特许权使用费;全年一次性奖金(年终奖,单独列出)。
- 全年已经被扣(预扣预缴)的税,含年终奖已扣的税。个税 App 的收入纳税明细里能查到。
- 三险一金:全年个人缴的部分(工资条上的养老、医疗、失业保险和住房公积金个人部分)。
- 专项附加扣除,逐项问有没有:
- 子女教育:几个孩子在上学(含 3 岁起的学前教育),自己扣全额还是和配偶各扣一半;
- 3 岁以下婴幼儿照护:几个,全额还是各半,今年符合条件几个月;
- 继续教育:在读学历(学位)几个月;今年有没有拿到职业资格证书;
- 大病医疗:每个人医保目录内自付多少;
- 住房贷款利息(首套)或住房租金,二选一;租房要问城市(按档位换成 1/2/3);
- 赡养老人:是不是独生子女;不是的话每月分摊多少(最多 1500)。
- 个人养老金全年缴了多少;其他扣除(如符合条件的商业健康保险)。
用户说的是月数、月工资时,你先换成全年数,并把换算结果说给用户确认。
租房城市档位:直辖市、省会(首府)、计划单列市以及国务院确定的其他城市填 1;市辖区户籍人口超过 100 万的城市填 2;不超过 100 万的填 3。拿不准就问用户所在城市,仍不确定时如实说明并请用户在个税 App 里确认。
2. 跑计算
python {baseDir}/scripts/settle.py --year 2025 --wage <工资> --prepaid <已扣税> --social <三险一金> [其他参数]常用参数:
| 用户说的 | 参数 |
|---|---|
| 工资薪金 / 劳务报酬 / 稿酬 / 特许权使用费 | --wage / --labor / --author / --royalty |
| 年终奖 | --bonus |
| 已预扣预缴的税 | --prepaid |
| 三险一金 | --social |
| 子女教育 | --children 人数,各扣一半加 --children-share 50,不满一年加 --children-months 月数 |
| 3 岁以下婴幼儿照护 | --infants 人数,--infant-share 50,--infant-months 月数 |
| 继续教育 | --degree-months 月数;拿到职业资格证书加 --cert |
| 大病医疗 | 每人一个 --medical 自付金额,可以写多次 |
| 首套房贷利息 | --mortgage-months 月数,婚前各自买房各扣一半加 --mortgage-share 50 |
| 住房租金 | --rent-months 月数 --rent-tier 1/2/3 |
| 赡养老人 | 独生子女 --elder only;非独生子女 --elder shared --elder-amount 每月分摊额 |
| 个人养老金 / 其他扣除 | --pension / --other |
| 先看样例 | --demo |
| 办理清单 | --checklist |
把脚本输出原样给用户,再用一两句话说结论(应补/应退多少、年终奖选哪种、要不要办)。每个数字结论后面都要带「仅供估算,以个税 App 计算结果为准」。脚本出错时会打印「出错了:…」「下一步:…」,照着下一步问用户补信息。
3. 办理清单
用户问怎么办、什么时候办、要准备什么时:
python {baseDir}/scripts/settle.py --checklist清单里是泛称的 App 操作要点,不要自己编具体的按钮名称和界面路径;用户问到界面细节,就说以 App 实际显示为准。
大白话 → 命令 示例
- 「我去年工资 20 万,公积金社保一年交了 2 万,单位扣了 6000 块税,要补吗?」
python {baseDir}/scripts/settle.py --year 2025 --wage 200000 --social 20000 --prepaid 6000 - 「月薪 1 万 2,五险一金每月扣 1500,一个孩子上小学我全扣,去年一共扣了 3000 税,能退多少?」(先换算:工资 144000,三险一金 18000)
python {baseDir}/scripts/settle.py --year 2025 --wage 144000 --social 18000 --children 1 --prepaid 3000 - 「工资 12 万,年终奖 3.6 万,年终奖是单独算好还是合并算好?社保一年 1.2 万,扣了 3360 税。」
python {baseDir}/scripts/settle.py --year 2025 --wage 120000 --bonus 36000 --social 12000 --prepaid 3360 - 「我工资 10 万,另外接私活拿了 5 万劳务费,还写书拿了 1 万稿费,一共扣了 1.2 万税。」(还要问三险一金,假设 1.2 万)
python {baseDir}/scripts/settle.py --year 2025 --wage 100000 --labor 50000 --author 10000 --social 12000 --prepaid 12000 - 「在杭州租房全年,不是独生子女,跟我哥分摊每月 1500 赡养老人,还交了 12000 个人养老金,工资 25 万、社保 2.5 万、扣税 1.5 万。」
python {baseDir}/scripts/settle.py --year 2025 --wage 250000 --social 25000 --rent-months 12 --rent-tier 1 --elder shared --elder-amount 1500 --pension 12000 --prepaid 15000 - 「我和老婆婚前各自有房贷,今年我妈住院自己掏了 3 万(医保目录内)……」——注意:父母的大病医疗不能由子女扣,只能是本人、配偶、未成年子女。先跟用户说清楚,再只把能扣的放进命令。
- 「个税汇算要准备什么?什么时候开始?」
python {baseDir}/scripts/settle.py --checklist
不做什么
- 不教偷税、避税:不帮用户虚报专项附加扣除、不编造子女/老人/租房/房贷信息、不教怎么拆分收入或把工资改成别的名目少交税、不教怎么躲汇算。用户这样问时,直接说不行,并提醒虚报会被追缴税款和滞纳金、影响纳税信用。年终奖在两种合法计税方式之间选更省的,这是政策允许的选择,可以说。
- 不覆盖经营所得、境外所得:用户有个体户/个人独资企业/合伙企业经营所得、境外收入,或是非居民个人,都回复「本技能不覆盖,请咨询税务机关或 12366」;股权激励、解除劳动合同补偿金等单独计税项目、各地残疾孤老烈属减征,同样不覆盖。
- 不替代个税 App:结果仅供估算,以个税 App 计算结果为准;不代用户登录、不代用户提交或缴款。
- 不联网、不猜政策:只用
references/policy-sources.md里查证过的口径;用户问 2028 年度及以后,提醒年终奖单独计税和免于汇算两项政策现行文件只写到 2027 年底,以届时最新文件为准。 - 不收集身份证号、银行卡号、个税 App 密码;用户发过来也不要复述,提醒对方不必提供。
注意
- 给用户看的文字用大白话,不写参数名、变量名和公式符号。
- 免于汇算的判断:需要补税且综合所得全年收入(劳务、稿酬、特许权按打折前的原额算)不超过 12 万元,或补税不超过 400 元。但如果单位或付款方本该预扣税却没扣,就不能免办,要提示用户自查。
- 应退税的不办就等于放弃退税,不算违规;想退就要在办理期内自己申请。