Small additional remarks concerning the CRF issue:

**Chris**: In your post you refer to "TIMES/MARKAL". Which one did you actually mean, or did you mean both TIMES and MARKAL?

Looking at the documentation of both MARKAL and TIMES, I can see the following formulas given for CRF:

**MARKAL**: The CRF is calculated as x=1/(1+DISCOUNT or DISCRATE), and then CRF={1-x}/{1-x^LIFE} (pages 192 and 231 of the documentation for Standard MARKAL)**TIMES**: CRFs={1-rs(t)}/{1-rs(t)^ELIFE}, where rs(t)=1/(1+ds(t)) (page 144 of the documentation, Part II)

The documentation of both MARKAL and TIMES thus appear to define CRF in the same way, which is equivalent to the CRF(2) you presented, and corresponds to ** beginning-of-year discounting**.

The default formulation in the TIMES GAMS code is consistent with the documentation, and so in TIMES the CRF values are, indeed, by default based on beginning-of-year discounting.

However, looking at the MARKAL GAMS code, to my surprise it seems to me that the MARKAL code may actually have adopted the CRF formula corresponding to ** end-of-year discounting**, which is thus inconsistent with the MARKAL documentation! That is quite interesting and somewhat confusing ...

Anyway, I would like to note that the CRF formulas based on beginning-of-year discounting and end-of-year discounting are both biased; the first method underestimates the interest payments, and the second overestimates them.

The good news is that in **TIMES** you can freely choose between these two, or you can use **mid-year-discounting**, which I think can be considered theoretically the most unbiased alternative.