Perfect Foresight vs. Time-Stepped Approach
#1
Hello,

Can someone explain the differences in which TIMES calculates activity cost (for example, fuel costs) in perfect foresight vs. time-stepped approaches?

I have a model which needs to make a vehicle investment, lifetime is 15 years. I understand in perfect foresight approach, it can calculate the 15 years of discounted fuel cost at the beginning of investment and annualize it (please correct me if I am wrong). How does it work in time-stepped approach? Suppose if I give a time step of 1 year, how does it calculate fuel cost? Will it just calculate every year as it decides?

Any insight would be appreciated.

Thanks,
Kalai
Reply
#2

Hi Kalai,

I don't think there should be any difference in calculating activity cost (for example, fuel costs), between the perfect foresight vs. time-stepped approaches. In both cases, the activity costs are calculated by multiplying the activity levels (VAR_ACT, VAR_FLO) by the activity costs (ACT_COST, FLO_COST, FLO_DELIV).

If you see a difference in these calculations, maybe you could you provide some example demonstrating it?

Reply
#3
Thanks for the reply, Antti! Sorry for not getting back to it immediately. I was trying to figure out the model runs without complicating too much.

I have kind of a unique problem in running the TIMES model. I am trying to integrate another model approach in the framework, mainly, in the form of additional costs or "investment tax". One component of this cost needs to be calculated endogenously based on NCAP values every year, i.e. it will look at the NCAP values of year (t-1), and calculate the tax of the year t.

And for this, it makes sense to run the model in a time-stepped fashion. The problem I have is, right now, I am calculating these costs outside of the model, and iterating back and forth to solve it. But, doing that way it optimizes the "whole system" together (i.e. all the timeperiods together), so I am not able to arrive at the desired solution.

Ideally, I would want to run the TIMES model in the myopic model, and it would calculate this particular cost endogenously based on previous year's output. Any ideas how this could be done?

 
Reply
#4

Ok, I may be starting to understand the question.

If your investment tax in period t+1 is a linear function of the NCAP values in period t, you can use a dynamic user constraint between t and t+1, bounding a flow in period t+1 according to the NCAP in period t, and set a tax on that flow.  Then you can indeed use time-stepped solution with single period steps and a zero overlap to make the model myopic to these delayed taxes. However, be aware that the model is extremely myopic when using non-overlapping time-steps like this.

Moreover, as the model is myopic to the taxes, the taxes have no impact on the investment decisions. Therefore, you could equally well leave them out of the model and calculate them exogenously, as the solution would be the same both ways. But maybe I am still misunderstanding the question?

Reply
#5
Thanks Antti! I think your suggestion on the dynamic user constraint might work very well!

Actually, I tried giving the costs exogenously, but it's still not capturing the dynamics of NCAP vs. Cost issue in the model. The tax does have an impact on the investment decisions. This feels like an ETL representation issue for the technology (the model is too big to do that now).

I will try the dynamic user constraint and see how it works. Thanks again!
Reply
#6
Hi Antti,

Just to follow up on the user constraint, here is the formulation I need to implement:

NCAP_ITAX(t) = function(VAR_NCAP(t-1))

The 'function' I have is a non-linear one, but let's assume that I can approximate to a linear one.

The user constraint can be translated to,

NCAP_ITAX(t) - function(VAR_NCAP(t-1)) <= 0

I have two questions here:

a) Is there a way to generalize this equation for all the timeperiods? I have so far explicitly specified the model constraints and values for each year/timeperiod based on back-end calculations. I will not know the NCAP values for the timeperiods prior to running, so it makes sense to generalize the equation.

b) I need to calculate the NCAP_ITAX dynamically with previous year's VAR_NCAP values. How can I include a function that takes NCAP values to arrive at new ITAX values?

As you can see, this is becoming similar to ETL problem. Is there a simple way to implement this?
Reply
#7
Also, can you please given the equation equivalent of your description "you can use a dynamic user constraint between t and t+1, bounding a flow in period t+1 according to the NCAP in period t, and set a tax on that flow." That could help me visualize.

Thanks so much!
Reply
#8

Kalai Wrote:Here is the formulation I need to implement: NCAP_ITAX(t) = function(VAR_NCAP(t-1))
That would seem more difficult. As you can see from my previous post, I was talking about VAR_FLO(t) = Function(VAR_NCAP(t-1)), and then setting a tax on the flow. I did not mention NCAP_ITAX at all.

Kalai Wrote:Is there a way to generalize this equation for all the timeperiods?
I am not sure how to do it with NCAP_ITAX (maybe you would need a dummy process for that). But with the flow approach I mentioned, sure: user constraints are normally generated for all timeperiods. See the documentation for details about user constraints.

Kalai Wrote:How can I include a function that takes NCAP values to arrive at new ITAX values?
Again, I don't know, as did not mention ITAX myself at all. But for the flow approach, you can easily define a linear function F such that FLOW(t)=F(NCAP(t-1)) by using the UC facility.

Kalai Wrote:Can you please given the equation equivalent of your description "you can use a dynamic user constraint between t and t+1..."
  Hmm... does not FLOW(t)=F(NCAP(t-1)) qualify for you as an equation equivalent?

Reply
#9
Thanks for the help, Antti. I will look into the FLO variable and see if it can be implemented for what I am looking for.
Reply
#10
Thanks for the help, Antti. I will look into the FLO variable and see if it can be implemented for what I am looking for.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)