Supplier Selection Calc(供应商选择测算)
Overview
本技能提炼自「供应商选择测算表」工具模板,是一套完整的采购比价决策方法论:不能只看报单价,而要比"综合净收益"——两个方案的毛利差,扣除付款现金流、增值税、附加税、印花税、企业所得税五个维度的税负差之后,剩下的净差异额决定选谁。
何时触发
- 用户问"两家供应商,一家一般纳税人报 X 元、一家小规模报 Y 元,选哪家?"
- 用户问"供应商说不开票可以便宜 Z%,要不要票?"
- 用户要求制作/复刻/填写「供应商选择测算表」,或解释表中公式关系
- 用户咨询含税价/不含税价换算、进项抵扣对采购成本的影响
核心决策模型
差异额度 = 毛利增量 − Σ(付进项增量 + 增值税增量 + 附加税增量 + 印花税增量 + 企税增量)
- 差异额度 ≥ 0 → 选方案一(一般纳税人 / 要开票);< 0 → 选方案二(小规模 / 可不开票)
- 优惠额度 = |差异额度| = 选对方案能省下的钱
- 价税分离口径:
不含税成本 = 含税价 ÷ (1+进项税率);反向含税价 = 不含税成本 × (1+进项税率) - 五税联动链条:进项税率 → 抵扣额 → 实缴增值税(销项−进项) → 附加税(=增值税×附加税率) → 印花税(=(采购成本+不含税收入)×印花税率) → 企税(=(毛利−附加税−印花税)×企税率)
前置条件(计算前必须逐项确认的参数)
开始任何测算之前,先向用户收集或明确以下 5 项参数;用户未提供时按默认值假设,但必须在回复开头列出所用假设,并提示"如与实际不符请告知,结论可能反转":
| # | 参数 | 说明 | 常见默认值 |
|---|---|---|---|
| 1 | 从一般纳税人购进的进项税率(供应商能开的专票税率) | 决定抵扣额,是比价的胜负手:13% / 9% / 6% 差一点结论就可能翻转,绝不可默认 13% | 13% |
| 2 | 自身增值税税率(本公司销项税率) | 13% / 9% / 6%。注意:两家对外销售价相同时,销项是共同项会相互对消,该参数不影响差异额度,但影响结论表述的完整性,仍需确认 | 13% |
| 3 | 印花税税率(购销合同) | 通常 0.03%(万分之三),金额小但需列入假设 | 0.03% |
| 4 | 企业所得税税率 | 25% 标准 / 15% 高新等优惠 / 小型微利 5%。影响"税后口径"的差异额度与临界点 | 25% |
| 5 | 增值税及附加税率(城建税+教育费附加等合计,以实缴增值税为基数) | 市区 12%、县镇 10%、其他 7% 等 | 12% |
另需两项报价信息:两方案的报价(含税/不含税口径要问清)+ 小规模/不开票方案的开票类型(1% 专票 / 3% 专票 / 普票 / 无票,直接决定进项税率填 0.01 / 0.03 / 0)。
参数不全时不得凭空跳过:列出假设 → 给出该假设下的结论 → 附上"关键临界点"(报价差多少会反转),让用户能自行校准。
三种场景与对应表页
| 场景 | 输入口径 | 决策问题 |
|---|---|---|
| 含税报价 | 两家均报含税价 | 一般纳税人 vs 小规模,选谁 |
| 不含税报价 | 两家均报不含税成本 | 同上(输入方向反转,D 列为输入) |
| 不开票报价 | 同一供应商:开票价 vs 不开票价 | 要不要发票 |
使用流程(五步)
- 填税率参数:本公司销项增值税率、购销印花税率、企业所得税率、附加税率(以实缴增值税为基数)。
- 填两个方案的报价与进项税率:含税价填 B 列,不含税价填 D 列(二选一口径);同时填本公司对外销售含税价。进项税率按"前置条件"确认的实际专票税率填写(勿默认 13%),小规模按开票类型填 1%/3%/0。
- 读税负对比区:自动算出毛利与各税种逐项对比及增量额(D 列 = B − C)。
- 看结论区:差异额度正负给出结论,优惠额度量化收益。
- 不开票场景额外判断临界点:只有"不开票报价"低于盈亏平衡价才可接受。不开票省下的增值税,会被"无发票成本不得税前扣除 → 企税增加"吃掉一大块——这是最常被忽略的隐性代价。
必须向用户纠正的常见误区
- 小规模报价低 ≠ 便宜:低价省下的进项垫付款,会被多缴的增值税、附加税、企税抵消,必须算净差异。
- 进项税率是胜负手:一般纳税人只能开 9%/6% 票时,抵扣护城河变浅,小规模的价格优势很容易反超(例:一般纳税人 100 元开 9% 票 vs 小规模 90 元普票 → 选小规模,差异 −0.56 元;同一价格若开 13% 票 → 反选一般纳税人 +2.16 元)。
- 销项税率不影响两方案差异:两家对外销售价相同时,销项税是共同项、做差对消,改销项税率(9%↔13%)不改变结论——向用户解释时可直接点破,避免无效追问。
- 不开票降价有下限:降价幅度低于"丢失抵扣 + 成本不能税前扣除"的合计代价时,不开票反而亏。
- 附加税、印花税是企税的扣减项(本模型简化假设均可税前扣除)。
- 每次比价必给临界点:算完差异额度后,附上"对方报价降到多少结论会反转",把静态结论变成可谈判的底线。
制作测算表时复用资产
- 生成新表:运行
scripts/build_template.py(纯文本 Python 脚本,需 openpyxl)生成供应商选择测算表-标准模板.xlsx——含三个场景 sheet 与全部活公式,已修正原模板瑕疵(D 列增量全部为公式、三表行序统一),改税率与报价即可。用法:python build_template.py [输出路径.xlsx];缺 openpyxl 时先安装到隔离 venv,勿全局 pip install。 - 公式细节(逐单元格公式、行布局、引用关系):查阅
references/model.md。 - 原始模板的已知瑕疵(自行复刻时勿照抄):D 列部分单元格为硬编码值而非公式;三个 sheet 的"附加税/印花税"行顺序不一致。
- 注意:本技能包只含文本文件,不含 xlsx 二进制(部分上传渠道禁止二进制);xlsx 一律由脚本按需生成。
输出要求
给用户结论时必须包含三要素:① 选谁/要不要票;② 差异额度(正负及含义);③ 优惠额度(能省多少钱,人民币金额)。涉及具体数字时给出计算过程表。