可持续供应商管理
采购碳排放(Scope 3)通常占企业总碳排放的 70–80%——真正的绿色供应链,必须延伸到供应商,而不是止步于自己工厂的大门。
可持续供应商管理框架
graph TD
SCREEN[供应商准入筛选\n环境/社会基础门槛] --> ASSESS[年度 ESG 评估\n问卷+现场审计]
ASSESS --> SCORE[ESG 评分\n环境/社会/治理三维度]
SCORE --> TIER[分级管理\n绿色/黄色/红色]
TIER --> GREEN[绿色供应商\n优先合作/长期合同]
TIER --> YELLOW[黄色供应商\n改善计划+支持]
TIER --> RED[红色供应商\n限期整改/淘汰]
GREEN --> DEVELOP[供应商能力建设\n减碳/效率培训]
YELLOW --> DEVELOP
style SCORE fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
style GREEN fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
style RED fill:#ffebee,stroke:#c62828,stroke-width:2px
供应商 ESG 评分系统
"""
供应商可持续性评分
"""
from dataclasses import dataclass
@dataclass
class SupplierESGData:
"""供应商 ESG 数据"""
name: str
# 环境 (E)
has_iso14001: bool # ISO 14001 认证
renewable_energy_pct: float # 可再生能源比例 0–1
carbon_reduction_target: bool # 是否有减碳目标
waste_recycling_rate: float # 废弃物回收率 0–1
# 社会 (S)
no_child_labor: bool # 无童工认证
living_wage: bool # 支付生活工资
female_management_pct: float # 女性管理层比例 0–1
lost_time_injury_rate: float # 工伤率(每百人·年)
# 治理 (G)
code_of_conduct_signed: bool # 行为准则已签署
anti_corruption_training: bool # 反腐败培训
data_security_certified: bool # ISO 27001 或同等认证
transparent_reporting: bool # 公开 ESG 报告
class SupplierESGScorer:
"""ESG 评分器"""
@staticmethod
def score(data: SupplierESGData) -> dict:
"""计算 ESG 三维度得分"""
# 环境 (40分)
e_score = 0
e_score += 10 if data.has_iso14001 else 0
e_score += min(10, data.renewable_energy_pct * 10)
e_score += 10 if data.carbon_reduction_target else 0
e_score += min(10, data.waste_recycling_rate * 10)
# 社会 (40分)
s_score = 0
s_score += 15 if data.no_child_labor else 0
s_score += 10 if data.living_wage else 0
s_score += min(5, data.female_management_pct * 10)
# 工伤率:0→10分,0.5→5分,≥1→0分
s_score += max(0, 10 - data.lost_time_injury_rate * 20)
# 治理 (20分)
g_score = 0
g_score += 5 if data.code_of_conduct_signed else 0
g_score += 5 if data.anti_corruption_training else 0
g_score += 5 if data.data_security_certified else 0
g_score += 5 if data.transparent_reporting else 0
total = e_score + s_score + g_score
return {
"供应商": data.name,
"环境得分 (E)": round(e_score, 1),
"社会得分 (S)": round(s_score, 1),
"治理得分 (G)": round(g_score, 1),
"综合 ESG 得分": round(total, 1),
"评级": (
"绿色 — 优选" if total >= 75
else "黄色 — 需改善" if total >= 50
else "红色 — 风险供应商"
),
"关键缺口": _identify_gaps(data),
}
def _identify_gaps(data: SupplierESGData) -> list[str]:
"""识别关键改善点"""
gaps = []
if not data.has_iso14001:
gaps.append("未获 ISO 14001 认证")
if data.renewable_energy_pct < 0.20:
gaps.append(f"可再生能源占比仅 {data.renewable_energy_pct*100:.0f}%,低于 20% 目标")
if not data.no_child_labor:
gaps.append("童工风险未认证清除 — 高优先级整改")
if not data.code_of_conduct_signed:
gaps.append("行为准则未签署")
if data.lost_time_injury_rate > 0.5:
gaps.append(f"工伤率 {data.lost_time_injury_rate}/百人·年,偏高")
return gaps if gaps else ["无重大缺口"]
# 演示
suppliers = [
SupplierESGData(
"东莞精密制造", True, 0.35, True, 0.80,
True, True, 0.30, 0.1,
True, True, False, True,
),
SupplierESGData(
"温州基础零件", False, 0.05, False, 0.40,
True, False, 0.15, 0.8,
True, False, False, False,
),
SupplierESGData(
"苏州绿能电子", True, 0.60, True, 0.90,
True, True, 0.40, 0.0,
True, True, True, True,
),
]
scorer = SupplierESGScorer()
print("=== 供应商 ESG 评分 ===")
for supplier in suppliers:
result = scorer.score(supplier)
print(f"\n{result['供应商']} [{result['评级']}]")
print(f" E:{result['环境得分 (E)']} / S:{result['社会得分 (S)']} / G:{result['治理得分 (G)']} = {result['综合 ESG 得分']}分")
print(f" 关键缺口: {'; '.join(result['关键缺口'][:2])}")
供应商减碳支持计划
| 支持项目 | 形式 | 适合供应商 |
|---|---|---|
| 能效审计 | 派专家上门 | 能耗大的制造型供应商 |
| 可再生能源采购培训 | 线上课程 | 所有供应商 |
| 绿色包装替代方案 | 联合选型 | 包装密集型供应商 |
| 联合碳核算 | 系统对接 | Tier-1 战略供应商 |
| 绿色贷款推荐 | 金融机构对接 | 需资金支持的改善项目 |
Scope 3 下游碳排放追踪
| Scope 3 类别 | 数据来源 | 收集难度 |
|---|---|---|
| 采购商品/服务排放 | 供应商碳核算数据 | 高 |
| 资本品排放 | 设备供应商 EPD | 中 |
| 外包生产排放 | 合作工厂数据 | 高 |
| 员工通勤 | 员工调研 | 低 |
| 商务出行 | 差旅报销系统 | 低 |
行动清单
- [ ] 向 Tier-1 供应商发放 ESG 问卷,完成初步评分和分级(绿/黄/红)
- [ ] 制定供应商行为准则(Supplier Code of Conduct),所有 Tier-1 必须签署
- [ ] 对"红色"供应商启动 6 个月整改期,设置明确改善指标
- [ ] 将供应商 ESG 评分纳入年度供应商评审,权重建议 10–20%
- [ ] 与 2–3 家战略供应商启动联合碳核算试点,收集 Scope 3 排放数据
- [ ] 建立供应商减碳激励机制(例如 ESG 高分供应商享受更长付款账期)
下一节:03-社会责任与合规审计 — 通过第三方审计保障供应链合规。