-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with 'cpi_offset' parameter #763
Comments
@GoFroggyRun said we could:
I view this as a very bad idea and I'm not even sure how it would work. Tax-Calculator has no problem with a reform that starts before the ten-year budget window. It is the design of TaxBrain that is the problem. When I started on this project, TaxBrain required all reform provision to start in the first budget year (that is, there was no |
@GoFroggyRun said we could:
And @martinholmer said:
One way to think about how to redesign TaxBrain, is to focus on one particular limitation of TaxBrain: the concept of "Start Year" has two conceptually distinct meanings. In TaxBrain, "Start Year" means the first year of the reform and it also means the first year of the ten-year budget window (for which tax results are shown). It seems to me that those are distinct concepts and we don't necessarily want them to be equal in all cases. So, why not have two start years on the TaxBrain GUI page? One would be the "Reform Start Year" and the other would be the "Output Start Year". Or maybe there are better labels for these two distinct start years. |
@martinhomer's proposal might be best, and that option would certainly be an improvement from where we are now because it would at least enable users to generate 10 years of output for the TCJA -- currently they can not. But it would not solve one of the problems @GoFroggyRun mentioned: "each input field other than cpi_offset has to have an extra *, indicating no change in 2017's law" and it would create a fairly significant source of user error, I imagine. Users might change the Output Start Year and forget to change the Reform Start Year or similar. So I wonder if anyone is aware of users encountering a problem like the one we face now before, where the user wants a different reform start year than output start year? If not, the simplest solution might be to just change the definition of One advantage of separating the reform start year and the output start year (@martinholmer's proposal) is that 5 years for now, say, it would be very easy to see how the TCJA implemented way back in 2017/2018 affects the forward looking 10 year budget outlook. So actually, I think my preference would be to do both: separate the Output Start Year from the Reform Start year and redefine cpi_offset in tax-calculator. The redefinition of cpi_offset should be a higher priority because it would solve immediate problems for users analyzing TCJA, and the separation of Output Start Year and Reform Start year could happen on a slower time frame. -- |
I agree with @martinholmer's proposal of having a start year and an output start year. I also agree with @MattHJensen that the |
@hdoupe said:
I have no idea how to "redefine" the |
I agree with @martinholmer, @MattHJensen and @hdoupe that having a start year and an output year on TaxBrain would be a huge improvement. We definitely want to incorporate such enhancement after things get cool down a bit. My apologies that my initially suggestion was not clear enough. Indeed, after looking into the price-inflation and wage-growth indexing mechanisms planted in tax-calculator, I agree with @martinholmer that modifying these logic is a bad idea. And I have no idea how to do that either. In fact, what I have in mind, instead of dealing with those convoluted logic, is to take a roundabout approach. After reforms are read into tax-calculator, but before implementing any of them, are we able to apply some special treatment to @martinholmer, does the approach make sense to you? Would that allow 1-year lag in specifying |
It seems like the consensus is that we need both a parameter (or reform) start year and an output start year. The interface would then look something like this: I think that we would only have to make changes on the TaxBrain side. Instead of passing the reform start year to TC, we would send the ouptut start year as the start_year in parameter in tbi.py. While we are adding this functionality, I think we should allow for the user to select a start year (output and reform) for any year up to 2027. The final year of output would still be 2027 or output start_year + 9, but the user would have an option to show less years. The output tables already allow us to do this: |
@GoFroggyRun and I were discussing implementation issues with adding an output start year. We circled back to the idea of adding a special reverse character. Here's our conversation: From @GoFroggyRun
From me:
From @GoFroggyRun:
|
I guess the only question remains regarding "reverse editing" is what the syntax should look like. The
or, if we were using
@hdoupe Is this what you were thinking? What do you think of the |
@GoFroggyRun asked
Sort of. I think we should impose some strict rules on how this symbol can be used so that we can keep everything simple.
For example, if you set the start year as 2018 and the Implementing this is pretty straight forward. In fact, I just put together a prototype. I'll open a PR in a few minutes. I think adding a reverse parameter and the ability to specify a different output year adds significant flexibility to TaxBrain. Consider a reform that goes into effect in 2018, but the vast majority of it's parameters do not take effect until 2020. You could set the reform year to 2020 and the output year to 2018. You could then use the "<" character to enter the parameters that take effect in 2018 and simply enter the other parameters with out having to use a bunch of "*" characters to get them up to 2020. I guess the argument against this character is that if you are going to learn how to use this character then wouldn't it be easier just to write a json file? |
Definitely agreed.
I don't think so -- there are significant other benefits of the GUI, such as being able to view documentation, current-law values, and the reform all in one place. |
Ok, I see. That makes sense. |
I just want to clarify the conclusion that we reached in #763. We needed to handle a parameter that needs to be set the year before it would take effect. We came up with 2 solutions. The first is a reverse character that makes the following parameter active one year earlier and only applies to a parameter in the reform start year. This was implemented in PR #790. The second is an output year parameter. This specifies the first year of the window in which the revenue, distribution, etc. are calculated and displayed to the user. For example, if the reform start year is 2017 and the output start year is 2018, then the parameters begin to take effect in 2017 but the output begins in 2018. PR #789 is a first pass at implementing this. |
Both the House bill and the Senate bill adopt chained-CPI indexing. While working on the reform file upload option and TB's GUI input work, I realized that there might be some issues with how this parameter works.
To realize chained-CPI indexing for year 2018, the
cpi_offset
parameter needs to be set to-0.0025
in year 2017. However, both reforms (House and Senate) actually take affect in 2018. In this case, to implement either reform in TB's GUI, users have to always begin with year 2017. So each input field other thancpi_offset
has to have an extra*
, indicating no change in 2017's law. Also, the result table would build an extra column for year 2017 with no change whatsoever. Does this really make sense?A couple solutions to simplify the issue:
Come up with some ways to allow users to edit previous year parameter on TB's GUI page, just like what we have done to allow future year edits.
Modify how
cpi_offset
parameter work in tax-calculator by simply implementing the chained-CPI indexing one year head of reform year specified.@martinholmer @MattHJensen @hdoupe
The text was updated successfully, but these errors were encountered: