Skip to content

Conversation

@jose-moran
Copy link
Member

The hurdle rate was not affecting investment decisions because the profitability formula was incorrectly comparing a present value (cost_reduction * (1+r)/r) against the candidate investment, which always resulted in the PV being 50-500x larger than the investment.

Changes:

  • Add is_investment_profitable() method with correct formula from investment_decision.md: (I/V)^(1-α) ≤ φ * (1+r_h)/r_h
  • Use nominal production (price × physical production) for dimensional correctness - I/V must be dimensionless
  • Add firm_industries parameter to get firm-specific prices
  • Include unit costs check (zero unit costs = no savings possible)
  • Update TFP production tests to pass pre-scaled limiting inputs, reflecting that set_targets() now pre-scales these values

Fixes #60

@sternluke please have a look and let me know if this is OK for you

The hurdle rate was not affecting investment decisions because the
profitability formula was incorrectly comparing a present value
(cost_reduction * (1+r)/r) against the candidate investment, which
always resulted in the PV being 50-500x larger than the investment.

Changes:
- Add is_investment_profitable() method with correct formula from
  investment_decision.md: (I/V)^(1-α) ≤ φ * (1+r_h)/r_h
- Use nominal production (price × physical production) for dimensional
  correctness - I/V must be dimensionless
- Add firm_industries parameter to get firm-specific prices
- Include unit costs check (zero unit costs = no savings possible)
- Update TFP production tests to pass pre-scaled limiting inputs,
  reflecting that set_targets() now pre-scales these values

Fixes #60
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant