小微企业季度电子税务局申报填报
概述
把企业的经营数据一次性转换为电子税务局季度申报所需各表单的逐栏应填数值,产出「填空表 + 各表单」一体的 Excel 工作簿与 Markdown 填报说明,并执行表内表间勾稽校验。
工作簿的核心是填空表:所有原始数据只在这一张表的浅黄色单元格里录入,其余表单的每一个栏次都用 Excel 公式引用填空表,填完即自动带出,不需要手工搬运数字。表内少量灰色单元格本身就是公式,用于把利润表推算到资产负债表(期末累计折旧、盈余公积、未分配利润),不需要填写。
适用:增值税小规模纳税人 | 企业所得税查账征收 | 执行小企业会计准则或企业会计准则的居民企业。
不适用:一般纳税人增值税申报、核定征收(企业所得税 B 类表)、个体工商户经营所得、年度汇算清缴。遇到这类需求,说明超出范围,不要硬套。
填空表覆盖的录入项
填空表按十组组织,共 135 个录入单元格,另有 4 个灰色自动推算单元格(不需要填):
| 组 | 内容 |
|---|---|
| 一 | 申报主体与属地参数:企业名称、年度、季度、主体类型、城市维护建设税税率、六税两费减征系数、是否限制行业 |
| 二 | 各季度从业人数与资产总额(季初/季末,用于小型微利企业判定的季度平均值) |
| 三 | 本季度增值税基础数据:3% 征收率销售额、专票/其他发票拆分、可减按 1% 销售额、5% 征收率、固定资产、免税销售额、预缴税额 |
| 四 | 本年累计损益与分配:收入、成本、税金及附加、销售/管理/研发/财务费用、其中利息费用、其中折旧摊销、其他收益、投资收益、营业外收支、提取盈余公积、分配利润、弥补亏损、已预缴所得税、所得税费用,以及自动推算的本年累计净利润 |
| 五 | 资产负债表数据:货币资金、应收票据、应收账款、预付账款、其他应收款、存货、其他流动资产、固定资产原价、累计折旧、在建工程、无形资产、长期待摊费用、短期借款、应付账款、预收账款、应付职工薪酬、应交税费、其他应付款、长期借款、长期应付款、实收资本、资本公积、盈余公积、未分配利润(各含年初、期末两列,列序为期末在前、年初在后;其中累计折旧、盈余公积、未分配利润的期末数是灰底公式,自动推算) |
| 六 | 现金流量表数据:经营/投资/筹资活动流入流出、汇率变动影响、年初现金 |
| 七 | 印花税十四个税目的计税依据 + 金融机构借款合同是否免征 |
| 八 | 房产税:房产原值、减除比例、租金收入、本期月数 |
| 九 | 城镇土地使用税:应税面积、单位税额、本期月数 |
| 十 | 文化事业建设费:广告服务含税收入、可减除的广告发布费、娱乐服务计费销售额 |
> A 列的括号是填写提示,不是数据的一部分。 从第四组起,每个项目名后都跟括号,里面是该项目的常见类型举例(如「营业收入(如销售商品收入、提供劳务收入、租金收入、服务费收入)」)。它只帮用户判断该填哪一类金额,不参与任何计算或解析——解析走的是隐藏的 J 列路径映射,改括号文字不影响结果。
>
> 第四组一律按「年初至本季末累计数」填列,不要折算。 用户给的单季数字(例如「这季租金 1.35 万」)必须先问清是累计还是单季:若为 1—9 月累计就原样填 13,500,不能乘 3;只有明确是单季数时才需要自行累计。反过来说,每季度固定发生的费用(如固定折旧)要按已过季度数累计(19,398.72 × 3 = 58,196.16)。两者口径不同,混用会让利润表和未分配利润整体偏掉。
填空表与资产负债表、利润表的关联
填空表第五组采用「期末余额在前、年初余额在后」的列序,与资产负债表表单一致,其中三项的期末数是公式自动算出来的:
| 期末项目 | 推算公式 | 来源 |
|---|---|---|
| 累计折旧 | 年初累计折旧 + 本年累计折旧摊销 | 第四组「其中:折旧、摊销费用」 |
| 盈余公积 | 年初盈余公积 + 本年累计提取盈余公积 | 第四组「本年累计提取盈余公积」 |
| 未分配利润 | 年初未分配利润 + 本年累计净利润 − 提取盈余公积 − 已分配利润 | 年初数 + 利润表推算的净利润 − 第四组分配项 |
其中本年累计净利润 = 营业收入 − 营业成本 − 税金及附加 − 销售/管理/研发/财务费用 + 其他收益 + 投资收益 + 营业外收入 − 营业外支出 − 所得税费用,与利润表第 14 行同口径。这条链路让「利润表 → 资产负债表」真正关联起来:改收入、成本或费用,期末未分配利润立即跟着变。
同一套推算规则在三个地方共用(scripts/input_spec.py 的 DERIVATIONS),口径不会漂移:
- 填空表的灰底公式(Excel 内实时计算);
parse_input_sheet反向解析时在 Python 侧重算,保证「填空表 → input.json」一致;tax_calc.py在输入未提供期末数时自动补算,并保留用户已填的期末数做勾稽比对。
此外,三个容易造成「报表崩坏」的字段留空时会自动按合理口径推定(derive() 记录在 _auto,生成 Excel 时改为跨表公式):
| 留空字段 | 推定口径 | 原因 |
|---|---|---|
| 货币资金(期末) | 年初货币资金 + 现金流量表净增加额 | 与现金流量表第 13 行咬合,避免期末现金为 0 |
| 固定资产原价(期末) | 沿用年初原价 | 未填报即视为本期无购置、处置,避免固定资产被清零 |
| 年初未分配利润 | 资产总计 − 负债合计 − 实收资本 − 资本公积 − 盈余公积 | 只拿到部分年初科目时,用未分配利润轧差把年初表补平 |
年初未分配利润若已有账面数,直接填入即可,轧差公式不再生效;如账面数与轧差数不符,说明还有科目未录入,应在填报说明中列明差额。
字段级明细与口径提示见 references/input-checklist.md。
工作流程
第 1 步:确认申报主体与属地参数
在索取任何数字之前,先问清以下四项,它们决定后续所有计算:
- 纳税人类型与征收方式 —— 是否小规模纳税人、是否查账征收。
- 申报期间 —— 年度与季度(如 2026 年第 3 季度)。
- 城市维护建设税税率 —— 市区 7%、县城和镇 5%、其他 1%。不可默认。
- 属地参数 —— 房产税扣除比例、城镇土地使用税单位税额、房产税与土地使用税的申报期限。这些因地而异,必须由用户提供。
同时确认两件事并向用户明示:
- 所在地是否已纳入增值税申报表试点。 2026 年 9 月起浙江、重庆等地区试点《增值税及附加税费申报表(试行)》,主表由 25 栏整合为 20 栏、栏次编码改为「数字 + 字母」。若已纳入试点,25 栏结构不能直接套用,需按新表对应关系映射后再产出。
- 本次覆盖哪些表单。 默认全套:填空表、增值税及附加税费申报表、企业所得税预缴 A 类、利润表、资产负债表、现金流量表、印花税、房产税、城镇土地使用税、文化事业建设费、填报汇总。
第 2 步:采集输入数据
按 references/input-checklist.md 的分组一次性索取数据,不要分批反复追问。核心是分清三种期间口径:
current_quarter—— 本季度发生额,用于增值税主表「本期数」。ytd—— 年初至本季末累计数,用于企业所得税 A200000 与利润表。balances/cashflow—— 期末与年初余额,用于资产负债表与现金流量表。
关键提醒:
- 已提供的数据要逐项确认「是真实为零,还是尚未取得」。未取得的按 0 计算,并在成果中集中列出「本次按 0 计算的项目」清单。
- 折旧不必录两遍:第四组填「其中:折旧、摊销费用」后,第五组期末累计折旧自动 = 年初累计折旧 + 该金额,并与费用里的折旧形成勾稽。
- 期末未分配利润、盈余公积同样是自动推算项,不要要求用户单独提供;只索取年初数、折旧摊销、提取盈余公积、分配利润即可。
- 利润表的营业利润、利润总额由公式计算得出,不要要求用户直接录入,否则会掩盖分项遗漏。
- 资产数据必须完整到能让「资产总计 = 负债和所有者权益总计」成立。用户给不全时先补齐再输出。
- 第二组(各季度人数与资产)需填到本季度为止。留空会导致季度平均值被低估,进而误判小型微利企业资格。
第 3 步:运行计算引擎
python scripts/tax_calc.py <input.json> -o results.json
脚本计算增值税主表 1~25 栏、企业所得税 A200000 第 1~32 行、利润表、资产负债表、现金流量表、印花税、房产税、城镇土地使用税、文化事业建设费,并运行勾稽校验。终端会打印应缴金额汇总与校验结果。
各表单的计算口径、行次含义与易错点:
- 增值税与附加税费 →
references/vat-and-surcharges.md - 企业所得税季度预缴 →
references/cit-quarterly-a.md - 财务报表三表 →
references/financial-statements.md - 财产行为税与文化事业建设费 →
references/other-taxes-and-fees.md - 政策依据、2026 年申报期限与风险边界 →
references/policies-and-calendar.md
若有勾稽校验未通过,先回头核对输入数据,不要带着未通过的校验输出成果。
第 4 步:生成交付物
# 完整工作簿:填空表 + 各表单(公式联动)+ 填报说明
python scripts/build_outputs.py results.json --input input.json --out-dir <目录>
# 只生成一份空白填空表,交给用户手工填写
python scripts/build_outputs.py --out-dir <目录> --template-only --name "2026年3季度申报"
# 生成完整工作簿但填空表留空(空白录入模板 + 空表单)
python scripts/build_outputs.py results.json --out-dir <目录> --blank
产出(文件名前缀自动带年度季度):
{年度}{季度}申报-填报表.xlsx—— sheet 顺序为:填空表 → 填报汇总 → 增值税及附加税费申报表 → 企业所得税预缴A类 → 利润表 → 资产负债表 → 现金流量表 → 印花税 → 房产税 → 城镇土地使用税 → 文化事业建设费。除填空表外,所有数值单元格都是 Excel 公式,随填空表实时联动;填空表内的灰底单元格同样是公式(自动推算期末累计折旧、盈余公积、未分配利润与本年累计净利润)。{年度}{季度}申报-填报说明.md—— 按表单列示「表单项 → 脚本计算值 → 数据来源 → 注意事项」,末尾附勾稽校验结果与录入前必须核对的事项清单。
生成 Excel 需要 openpyxl,缺失时先安装。
清空已填数据:不要删行、删列或用「清除全部」——填空表里藏着灰底派生公式和隐藏的 J 列路径映射,删掉结构会让反向解析失效。正确做法有两种:
- 只清内容:在 Excel 里选中 B、C 两列的浅黄色单元格,按 Delete 删除内容(保留格式与公式)。
- 重新生成:
build_outputs.py ... --blank直接出一份全新空白表。--blank同时会把填报说明改成「空白模板」版(金额全 0,并标注录入后需重新生成),不会残留示例数据。
第 4.5 步:公式自检(改动表单结构后必做)
工作簿是公式驱动的,公式引用写错不会报错、只会静默算错(例如少缴增值税)。改动 build_outputs.py 或 input_spec.py 的表单结构后,务必跑一遍自检:
python scripts/verify_formulas.py <填报表.xlsx> <results.json>
它会自行求值 Excel 公式,逐项与 tax_calc.py 的计算结果对账(含填空表内的灰底派生单元格与资产负债表平衡校验行),输出「全部一致」或差异清单。日常生成交付物时无需运行,仅用于维护。
第 5 步:若用户回传已填写的填空表
用户把填写好的填空表回传时,直接解析回标准输入,无需人工转录:
python scripts/input_spec.py --parse <已填写的填空表.xlsx> -o input.json
python scripts/tax_calc.py input.json -o results.json
python scripts/build_outputs.py results.json --input input.json --out-dir <目录>
填空表 J 列(隐藏)保存了每个单元格对应的数据路径,解析是精确定位而非按标签猜测。
第 6 步:交付说明
向用户说明时,务必包含:
- 各税种应缴金额与合计,按表单归类。
- 填写方式:只需填填空表的浅黄色单元格(灰底是自动推算公式,别改),其余表单自动计算;若用户更习惯先看数值,附上 Markdown 填报说明。
- 未通过或需人工判断的校验项,说明差异金额与可能原因。
- 本次按 0 计算的项目清单,提醒补齐后重新计算。
- 属地参数与申报期限的确认点,尤其是房产税、城镇土地使用税的申报期限可能与季度申报不同期。
- 明确本 skill 不代提交申报,最终录入由纳税人完成。
核心计算规则速查
增值税:先判断起征点,再决定怎么填
全部销售额(不含税)= 3%征收率 + 5%征收率 + 销售使用过的固定资产 + 其他免税 + 出口免税
≤ 300,000 元(按季)→ 未达起征点,应税销售额填第 10 栏(企业)或第 11 栏(个体工商户、自然人)
第 15、16、20、22 栏均为 0
> 300,000 元(按季)→ 达到起征点,全额计税
第 15 栏 = 销售额 × 3%
第 16 栏 = 减按 1% 征收的销售额 × 2%
第 20 栏 = 第 15 栏 - 第 16 栏
- 达到起征点即全额计税,不是只对超出部分计税。
- 填空表第三组的「可减按 1% 征收的销售额」留空时,默认按 3% 征收率销售额全额计算减征额。
- 附加税费第 23~25 栏以第 20 栏为计税依据,均按「六税两费」减征系数调整;第 20 栏为 0 时附加税费也为 0。
- 销售不动产、出租不动产、转让土地使用权不适用减按 1%,按 3% 全额。
企业所得税:累计口径,超 300 万即失去小微资格
第 18 行 利润总额 = 第 15 行营业利润 + 营业外收入 - 营业外支出
第 25 行 实际利润额 = 第 18 行 + 特定业务 - 不征税收入 - 加速折旧调减 - 免税减计加计扣除 - 所得减免 - 弥补亏损
第 27 行 应纳所得税额 = 第 25 行 × 25%
第 28.1 行 小微减免 = 第 25 行 × 20% (仅当同时满足四个条件时)
第 32 行 本期应补(退)= 第 27 行 - 第 28 行 - 第 29 行 - 第 30 行 - 第 31 行
四个条件:累计实际利润额 ≤ 300 万元、从业人数季度平均值 ≤ 300 人、资产总额季度平均值 ≤ 5000 万元、非国家限制或禁止行业。
- 实际税负 = 25% × 20% = 5%,减免比例 = 20%。300 万元以内不分段计算。
- 第 25 行超过 300 万元,本季度即不再享受小微减免。
- 全部行次都是本年累计,不是本季度发生额。
- 季度平均值 = (季初 + 季末) ÷ 2;截至本期末平均值 = 各季度平均值之和 ÷ 季度数。
财务报表:五个强制平衡关系
资产总计 = 负债合计 + 所有者权益合计 (资产负债表)
现金及现金等价物净增加额 = 期末现金 - 年初现金 (现金流量表)
未分配利润期末 = 年初未分配利润 + 净利润 - 提取盈余公积 - 已分配利润
累计折旧期末 = 年初累计折旧 + 本年累计折旧摊销
盈余公积期末 = 年初盈余公积 + 本年累计提取盈余公积
后三条是「利润表 → 资产负债表」的关联推算,已内置于填空表公式与计算引擎。不平衡时先修数据,不要输出。工作簿的资产负债表末行设有自动校验行,两列都应为 0。
文化事业建设费
仅广告服务与娱乐服务涉及。计费销售额 × 3%;广告服务可减除支付给其他广告公司或广告发布者的含税广告发布费(须取得专票或合法凭证)。按季销售额不超过 6 万元或未达增值税起征点时免征;归属中央收入部分减征 50%。
输出规范
- 所有金额单位为元,保留两位小数。仅 A200000 的从业人数、资产总额用万元。
- 填空表是唯一录入入口,不要在表单页手工改数值——那会覆盖公式。
- 每个数值都要带计算依据或数据来源,让用户能自行复核。
- 校验未通过的项目单独列出,并给出差异金额,不要淹没在正文里。
- 属地参数(城建税税率、房产税扣除比例、土地使用税单位税额)在成果中显式列明取值,便于用户核对是否与当地规定一致。
已知限制
- 工作簿是公式驱动的,需要用 Excel、WPS 等能计算公式的软件打开;纯预览器可能显示空白。打开时已设置为自动重算全部公式。
- 资产负债表模板按小企业会计准则常见科目设置。若企业有交易性金融资产、长期股权投资、递延所得税等科目,需在填空表第五组和资产负债表表单中同步扩展。
- 填空表对从业人数、资产总额只按季度填报(季初/季末),不处理月度申报场景。
边界与免责
- 本 skill 只产出填报数值与说明,不登录电子税务局、不代为提交申报,最终录入与提交由纳税人完成。
- 不做政策适用的实质判断。某项支出能否税前扣除、某笔收入是否属免税范围,须由纳税人依据法规判断,必要时咨询主管税务机关或税务师。
- 申报数据的真实性、完整性由纳税人承担。输入数据必须来自账簿、发票、银行流水等可靠来源。
- 政策具有时效性,执行前核对
references/policies-and-calendar.md中的文号与有效期,遇新公告发布应重新核对。 - 不得用于隐瞒收入、虚增成本或规避纳税义务。