Coding a variable in regression that decays and goes negative and then to zero In marketing analytics, there is a concept of adstock link
that captures through a variable transformation, the decaying impact of an advertising stimulus on demand. Finding the optimal adstock rate is typically done through non-linear least squares and  ends up distributing a stimulus in week n across weeks n, n+1, n+2, .., n+N. 

In my case, I am looking not at marketing but promotions (e.g. discounts, sales, premiums) and the expectation is that a discount will produce an effect where there is a spike in demand and then a negative effect (because the demand was pulled forward in time) and then to zero. So, month 1 pay be positive, month 2 negative (to a lesser degree) and then no effect. 
Is there a variable transformation like this or do I need to likely fall back on a distributed lag model (with explicit variables for promotion level now, promotion level 1 period back, promotion level 2 periods back)?
 A: For something like this I would recommend using some kind of state-space model where you have a hidden state-space that represents the underlying demand at some particular time.  You could model the underlying demand as a replenishing process, but model the actual observed sales as drawn from this underlying demand proportionately based on other variables (e.g., advertising, etc.).  Having a discount or sales promotion could be modelled as increasing the proportion of sales from the underlying demand, and this would automatically give rise to a subsequent reduction in sales in the next periods because it would reduce the underlying (hidden) demand, which would then take some time to replenish.
This kind of model would require you to specify forms on the state-space and the observable sales, and so it would involve decisions about how to model the underlying demand accruing over time.  I have no specific advice to give here, except to say that the level of freedom in the behaviour of these variables should be set with regard to the amount of data you have (i.e., if you have a lot of data then you will have more degrees-of-freedom so you can give broader functional forms for the variables, or even model them with non-parametric means).
