Replies: 2 comments 4 replies
-
|
Thanks very much for this @tsmbland. I have a few initial questions and a couple of clarifications:
And some clarifications:
Overall: |
Beta Was this translation helpful? Give feedback.
-
|
@tsmbland - in relation to this see closed issue #246 and remaining open issue #288 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
A few notes about how prices are used and calculated in MUSE:
User inputs
Prices are specified in a csv file with region, year, and all of the commodities as columns. Each row holds the price of all commodities for a specific year. This means that (annoyingly), if a user want to specify the price of one commodity for a specific year, then they need to specify all commodities for that year, even if many of these input prices will never be seen by the model (more on that below).
I believe it's also possible to specify prices on a timeslice level (the model certainly holds timeslice-level prices), although I've never seen that being done.
How are prices used?
Prices are used in the calculation of objectives (calculated at the timeslice level), which the solver aims to minimize. Each year, the objectives are given prices from the current year up to the forecast year (current year + forecast length), however it varies between the objectives whether they actually use the full price forecast. The LCOE objective does use the full forecast (with flat-forward extension beyond the forecast year if necessary), however other objectives such as fuel consumption cost, capital cost and emissions cost only use prices for the forecast year.
NOTE. The sector is only ever given prices for the current year and the investment year, and if the forecast year is further in the future than the investment year (e.g. a forecast length of 10 with a 5-year time framework), then it will just use linear extrapolation to calculate prices for the forecast year.
Updating prices
Each year of the simulation, the model will recalculate the prices for some or all of the commodities. The way that prices are dealt with differs depending on the type of commodity. We can split commodities into three categories:
Environmental products (i.e. CO2f)
Prices for these are never recalculated, and the model will always use the projections given in the input file.
EDIT: Except when using a carbon budget (see comments below)
Input commodities that are not outputted by any process
If a commodity is not outputted by any process in the model (e.g. maybe oil is an input commodity to some processes, but there is no process in the model outputting oil), then prices will not be recalculated (same as above).
Commodities that are outputted by a process/processes
Any commodities that are outputted by a process will have their price recalculated for future years by the
supply_costfunction (more on this later). For example, if it's 2020 investing for 2025, then the price for 2025 will be replaced with the recalculated value, and all future years will also be set to this price (regardless of the forecast length). Then, in the next year, 2030 and all future years will be replaced again.Price updates happen each iteration of the MCA.
This means that, for these commodities, the only input prices that will ever be seen by the solver are the first year and the first investment year (e.g. 2020 and 2025). And since prices for the investment year get replaced each iteration of the MCA, only the input values for the first year will be used directly in the final result.
The exception here is if
maximum_iterationsis set to 1. In this case, no prices will be updated, and the input projections for all years will be maintained.How are prices calculated?
Prices are re-calculated using the
supply_costfunction.If a commodity is produced by a single technology, the new price is just the LCOE of the commodity produced by that technology in the investment year. This will depend on the lifetime of the technology (
technical_life), the interest rate for the technology, capital costs (cap_par), fixed/variable costs (fix_parandvar_par), the utilization factor, the commodity prices of the technology inputs, and the commodity price of environmental outputs. Exponents (cap_exp,fix_expandvar_exp) are not used (equivalent to having exponents of 0). If a commodity is produced by multiple technologies in the same sector*, a weighted average is taken according to the production by each technology. Prices are calculated at the timeslice-level, however the only price-determinant that can vary on a timeslice-basis (apart from the price of other commodities) is the utilization factor.(*This only works if all technologies that produce a commodity are in the same sector. If this isn't the case, then you can run into all sorts of problems, beyond just the calculation of prices)
I can understand the logic, as the (weighted-average) LCOE is the price that must be charged for each commodity for the technologies to break even. However, I find it really strange that the price of a commodity in t=2 does not directly depend on its own price in t=1. I also find it strange (perhaps naively) that prices aren't influenced by demand and supply...
Also, because the exponents aren't used in the calculation of commodity prices, they are only going to be accurate it capacity/production are equal to 1 (or if the exponents are zero), which may not be the case. Why are we not using the exponents?
Beta Was this translation helpful? Give feedback.
All reactions