EnergySystemsModellingLab / EnergySystemsModellingLab/MUSE2
Implement agent cost limits
- Dominant language
- Rust
- Stars
- 8
- Forks
- 5
- Avg merge
- 1d 2m
- Merged PRs (30d)
- 37
Description
We have `agent_cost_limits.csv` with `capex_limit` and `annual_cost_limit` fields, but we don't use these anywhere in the model.
I have a vague idea of what these might entail:
- `capex_limit`: total amount an agent can spend per milestone year (or per year, in the case where there's a gap between milestone years?) on capital costs
- `annual_cost_limit`: total amount an agent can spend per milestone year on operating costs
Some questions @ahawkes:
- presumably we implement these are constraints in the appraisal optimisation?
- what happens when these limits are reached? No more investment allowed for that agent? In which case, if there's still unserved demand for that agent then it will fail. Perhaps this makes more sense for "compete" commodities, where other agents would potentially be able to make up the rest of the demand
- are these limits for each commodity, or total across all commodities that the agent serves? If the latter, then the order we solve the commodities is important, as commodities solved first could potentially fill up the agent's quota. Perhaps we'd have to solve all the commodities that the agent serves simultaneously, similar to what I've proposed for flexible outputs (#360). That would require all the commodities that the agent serves to be the same rank in the commodities graph - could be a problem, although for most common scenarios I think it wouldn't be
In any case, until we implement this I suggest we temporarily turn off the input file, or at least add a warning to the documentation that this file isn't being used.
Contributor guide
Assessment
This issue has not been assessed yet.