跳到内容
🛠️ToolsShed

Cost-Benefit Analysis

计算NPV、ROI和收益成本比用于项目评估。

成本

收益

$127,006
净现值 (NPV)
1.88
收益成本比
87.50%
ROI
1.82 年
回本期
年份成本收益净现金流
1$120,000$75,000$-45,000
2$20,000$75,000$55,000
3$20,000$75,000$55,000
4$20,000$75,000$55,000
5$20,000$75,000$55,000

关于此工具

成本效益分析是一种基本的经济工具,用于比较实施项目或倡议所带来的效益与成本的金融价值。它帮助个人、组织和政府机构通过量化投资是否会产生正回报来做出明智的决策。该工具计算的核心指标——净现值(NPV)、投资回报率(ROI)和效益成本比(BCR)——使您能够以标准化的基准评估项目,并根据其财务优势对竞争方案进行排序。

要使用此工具,请输入初期投资成本并列出项目期间的年度效益和成本。指定一个折现率(通常在大多数业务决策中为5-10%)以考虑资金的时间价值,这反映了通货膨胀和机会成本。计算器然后计算净现值(以今日美元计算的总净收益)、投资回报率(相对于初期投资的百分比回报)和效益成本比(效益除以成本)。正的净现值、高于目标阈值的投资回报率和大于1.0的效益成本比都表明项目在财务上是可行的。

这种分析对资本预算、基础设施规划、环保政策和业务扩展决策至关重要。项目经理和财务分析师使用这些指标向利益相关者证明投资的合理性,并比较具有不同时间线的替代方案。请记住,成本效益分析依赖于对未来成本和效益的准确预测。敏感性分析(调整折现率或效益估计)可以帮助您理解假设如何影响结果。

常见问题

代码实现

def cost_benefit_analysis(costs, benefits, years: int, discount_rate: float):
    """
    costs/benefits: list of {'name': str, 'amount': float, 'type': 'one-time'|'annual'}
    discount_rate: as decimal (0.08 for 8%)
    """
    cash_flows = []
    cumulative_pv = 0.0
    cumulative_net = 0.0
    payback_year = None

    for year in range(1, years + 1):
        year_costs = sum(
            c['amount'] for c in costs
            if c['type'] == 'annual' or (c['type'] == 'one-time' and year == 1)
        )
        year_benefits = sum(
            b['amount'] for b in benefits
            if b['type'] == 'annual' or (b['type'] == 'one-time' and year == 1)
        )
        net = year_benefits - year_costs
        df = 1 / (1 + discount_rate) ** year if discount_rate > 0 else 1
        pv = net * df
        cumulative_pv += pv
        cumulative_net += net
        if payback_year is None and cumulative_net >= 0:
            payback_year = year
        cash_flows.append({'year': year, 'costs': year_costs, 'benefits': year_benefits, 'net': net, 'pv': pv, 'cumulative_pv': cumulative_pv})

    total_costs = sum(cf['costs'] for cf in cash_flows)
    total_benefits = sum(cf['benefits'] for cf in cash_flows)
    npv = cumulative_pv
    bcr = total_benefits / total_costs if total_costs > 0 else 0
    roi = (total_benefits - total_costs) / total_costs * 100 if total_costs > 0 else 0

    return {'npv': npv, 'bcr': bcr, 'roi': roi, 'payback_year': payback_year, 'cash_flows': cash_flows}

# Example
costs = [
    {'name': 'Initial Investment', 'amount': 100000, 'type': 'one-time'},
    {'name': 'Annual Operating',   'amount': 20000,  'type': 'annual'},
]
benefits = [
    {'name': 'Revenue',      'amount': 60000, 'type': 'annual'},
    {'name': 'Cost Savings', 'amount': 15000, 'type': 'annual'},
]
result = cost_benefit_analysis(costs, benefits, years=5, discount_rate=0.08)
print(f"NPV: ${result['npv']:,.0f}")
print(f"BCR: {result['bcr']:.2f}")
print(f"ROI: {result['roi']:.1f}%")
print(f"Payback: Year {result['payback_year']}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.