Skip to content
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

Add more ways by which government can obtain/spend revenue #85

Closed
jrissman opened this issue Aug 4, 2020 · 17 comments
Closed

Add more ways by which government can obtain/spend revenue #85

jrissman opened this issue Aug 4, 2020 · 17 comments
Assignees

Comments

@jrissman
Copy link
Contributor

jrissman commented Aug 4, 2020

There are many policies in the EPS that can cause a change in government cash flow. For example, a carbon tax policy adds revenue for the government. In contrast, a subsidy paid by the government to buyers of electric vehicles (EVs) expends government money.

Here are the two ways we currently support in the EPS to say what government does with the money (or where government gets the money):

  1. Government can increase or reduce its spending. What government spends its money on is based on BAU percentage allocations, which directs a lot of money to defense, social security, and education, as well as paying for government’s own operations and staff.

  2. Government can reduce or increase taxes. (Climate dividends paid to households count in this category.) For example, increased revenue can be rebated by lowering payroll taxes on businesses, lowering individual income taxes, paying a climate dividend, etc. A shortfall in government revenue can be made up for by increasing taxes on these entities.

Thus, our current working assumption is that the system is closed. But this seems a bit odd, since the Federal government’s budget is not balanced, it engages in deficit spending, and it is possible that subsidies for a specific thing, like EVs, are not paid for through additional tax revenue or by cutting programs.

There are two other ways I’m aware of that the government can address changes in its own cash flows. Each one has its own complication, which we could model, as noted here:

  1. Government can increase or reduce deficit spending. We could create a new bucket called “change in national debt” that holds positive or negative contributions to the national debt caused by the policy package. Changes in government spending can then feed into (or draw from) this bucket, rather than having to be paid for by cutting/boosting other spending or increasing/decreasing taxes.
  • Complication: We would probably then have to track the change in interest that must be paid on the national debt, and make government cover this change in interest, in the same way that they cover any other negative change in their cash flow.
  1. Government can “print money” – meaning the Fed engages in open market operations, buying Treasury notes from member banks by issuing credit. The Fed could then cut a check to the treasury (or loan the Treasury the money with no serious expectation of being paid back) – e.g. monetizing the debt. Unlike deficit spending, printing money lowers the national debt, because it is inflationary, so it lowers the value of the U.S. dollar, including all U.S. dollar-denominated debt held by bondholders. The Fed's use of open market operations used to be small, but increased greatly starting with the 2008 Great Recession.
  • Complication: We would probably then have to calculate the amount of induced inflation (%), and change the output currency conversion factor (web-app/OCCF) to account for induced inflation.

One possible approach: The balance of which strategies are used would be customizable by the user with a set of four policy levers, configuring the relative share of each of the four strategies that is employed. The model wouldn’t be able to pick which strategies to use on its own, as that’s an aspect of the design choices made by policymakers. Note also that the combination of revenue strategies used would be applied to the net change in government cash flow caused by all of the policies in the package together – we don’t have an ability to use different combinations of strategies for different policies within the same policy package. On the downside, that means we can’t simulate a revenue-neutral carbon tax combined with a deficit-funded EV subsidy as part of the same package. On the upside, that makes it very easy to simulate using government revenues on specific policies or programs (like using carbon tax revenues to fund an EV subsidy), because the costs of those programs to government are first paid for out of added revenues from other policies, before any of the four strategies are employed on the resulting net change.

As levers, they would all be customizable using implementation schedules. That means you could construct a scenario where, say, strategy #3 is used in the near-term, but phases out in favor of other strategies in the longer term.

We are currently soliciting reviewer feedback on whether adding capability (3), (4), both, or something else entirely would be the best way to proceed.

@jrissman jrissman self-assigned this Aug 4, 2020
@jrissman
Copy link
Contributor Author

jrissman commented Aug 4, 2020

Reminder to self: once the government revenue use structure is done, we need to update the cost metric calculations (for example, on the Cost Outputs sheet) to respect the government revenue use allocation choices made by the user. We don't need to have two separate versions of any output graphs (with and without revenue-neutral taxes and subsidies), but we need to make sure the main version of each such output graph updates itself to reflect the user's choices about revenue-neutrality in these levers. For example, this likely requires subtracting all increases in government revenue that were reallocated to entities under mechanism (2) above from Change in CapEx plus OpEx.

This will ensure the cost graph correctly reflects the lever settings chosen by the user, and avoids retaining the simplistic representation of revenue-neutrality from the 2.x series, now that we're able to calculate revenue neutrality in more detail in the 3.x series.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

On strategy (4), I said:

  • Complication: We would probably then have to calculate the amount of induced inflation (%), and change the output currency conversion factor (web-app/OCCF) to account for induced inflation.

Upon further reflection, I don't think OCCF should change. The model will be outputting the prices of things in 2019 dollars, which is based on a time before inflationary policies take effect. If the government triggers inflation, nominal prices in 2050 might be much higher. But the core value of, say, a gallon of milk shouldn't be affected, so in 2019 dollars, its value stays the same.

Instead, we might just put in a separate graph of induced inflation, which compares BAU nominal dollars to policy case nominal dollars in each year. Or maybe we can live without that graph, although I hesitate to omit it, because then it makes the "printing money" option appear to be truly free, and illustrating inflation is the only way to get at the downside of that approach to raising government revenue. But it may be difficult to estimate this. In a depression-type economy, it may not trigger any inflation, but in some historical cases, it has spiraled out of control as hyper-inflation (far outpacing the rate at which government adds money to the money supply). Wikipedia says:

The immense acceleration process that occurs during hyperinflation (such as during the German hyperinflation of 1922/23) still remains unclear and unpredictable. The transformation of an inflationary development into the hyperinflation has to be identified as a very complex phenomenon, which could be a further advanced research avenue of the complexity economics in conjunction with research areas like mass hysteria, bandwagon effect, social brain, and mirror neurons.

The simplest way to estimate induced inflation would be to take the amount of money printed, divided by the total money supply. That would only be accurate if we assume that no complicated feedback loops develop. That might be the best available estimate we could make, but it wouldn't be designed to capture the true complexities of the management of the money supply by a central banking authority.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

Reminder to self: Add a stacked area graph of change in government revenue, broken out by compensatory technique (e.g. changes in spending, changes in taxes on households, changes in taxes on businesses, changes in deficit spending, changes in money supply), to help model users understand the mix of techniques they are using in each year and the number of dollars being handled under each technique.

@ssonniaa
Copy link

ssonniaa commented Aug 5, 2020

I would suggest avoiding the induced inflation graph.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

Okay, that makes sense.

Thinking about it more, I think the thing we'd need to do is to calculate an "inflation tax." Unlike nominal dollars, real dollars can't be produced from nothing. If it's debt, that counts as deficit spending. If it's not debt, it is effectively a tax on all dollar-denominated assets, which reduces their savings when measured in real dollars. So I think the correct thing to do might be to determine what percentage of all dollar-denominated assets are held by each cash flow entity (with "foreign entities" being especially important here, as large holders of U.S. government debt) and assign them negative cash flows in real dollars, representing the inflation tax.

Mechanically, this actually isn't so different from raising taxes on these entities, as per mechanism (2). The main difference is that the tax is allocated on the basis of who holds dollar-denominated assets, instead of being allocated based on policymakers' decisions about who to tax. The other difference is that it is able to shove a lot of the burden onto "foreign entities," who hold lots of U.S. dollar assets, but are normally hard to target with ordinary tax policy, since they're not necessarily making or spending money in the U.S. These differences probably would merit the inclusion of a separate lever for increasing the money supply, even if it's operating in a mechanically similar way to lever (2). (Also, a separate lever better highlights that the EPS has this capability at all, which would not be perceived if we only explain you have to set the tax rates equal to the implied inflation tax, which few users would be able to do on their own.)

So I think my current best thinking on the right approach to calculate method (4) is:

  • Do not change OCCF
  • Do not add a graph of induced inflation
  • Calculate the equivalent inflation tax (perhaps just the increase in money divided by the money supply), and allocate this as negative cash flows to other entities proportionally to their holdings of dollar-denominated assets

There simply isn't a way for the government to create true value out of thin air by printing money, and the approach of calculating the equivalent inflation tax probably best captures who is really paying when the government does this to fund its programs.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

Actually, we don't need to divide by the money supply, because we don't need tax rates. We only need absolute quantities. So it's easier than I laid out above. We just find the number of dollars the government printed, and allocate them as negative dollars to holders of dollar-denominated assets. The size of the money supply wouldn't be used.

@robbieorvis
Copy link
Contributor

robbieorvis commented Aug 5, 2020 via email

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

We would need a new input variable, something like PoCDAHbE Percent of Currency Denominated Assets Held by Entity, in which we specify the share of all assets denominated in the modeled region's currency that are held by each entity, excluding government (households, non-energy industries, energy industries, foreign entities). One way to break it down might be:

  • physical banknotes (and coins) in circulation
  • dollar deposits held at banks (e.g. in savings, checking, and CD accounts)
  • government debt (e.g. Treasury bonds and bills, municipal bonds)
  • corporate debt - e.g. corporate bonds (not equities)
  • consumer debt - e.g. mortgages, auto loans, student debt, credit card debt, etc.

Holders of Physical Banknotes

The Federal Reserve Bank of St. Louis estimates that 60% of all U.S. banknotes are held outside the United States right now. I assume most of the remainder is going to be split between retail-type businesses and households. We might be able to look up a breakdown. (Any notes held by banks probably are already included in the "bank deposits" category, so shouldn't be double-counted here.) The total amount of U.S. currency in circulation is $1.2 trillion, which makes it the smallest component (by far) of the three components considered here.

Bank Deposits

According to the St. Louis Fed, the total amount is about $11.5 trillion. I haven't looked long enough to see if I can find a breakdown of ownership (e.g. housholds vs. businesses).

U.S. Government Debt

There's a table of who holds U.S. government debt here. The foreign share is 28.5%. We could also use the breakdown in the rest of the table to get a decent estimate of the allocations to other entities. The total amount is $22 trillion. We'd also need to find some data on state and municipal bond amounts and holders, which are likely to be less foreign-slanted, given the tax advantages of holding municipal debt to in-state bondholders.

Corporate Bonds

The total size is $13.1 trillion, with a pretty detailed breakdown of bondholders on that linked web page.

Consumer Debt

We can probably just assume all consumer debt is held by banks (finance industry ISIC code), except for the mortgages purchased by Fannie and Freddie. Total consumer debt is about $14 trillion.

We'd have to build on research like this (which I did very quickly) to try to come up with some values we like for PoCDAHbE Percent of Currency Denominated Assets Held by Entity. It might not be perfect, but we could probably do a better job than a model user, who would be (hopelessly) trying to configure method (2) to represent an equivalent inflation tax. Or we could decide not to support printing money as a thing that a government can do in the EPS.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

Actually, for the debts where the government isn't on either end of the transaction (such as an auto loan held by a bank), the government doesn't get any revenue from the inflation tax. It just costs the bank money, which benefits the debtor (the person with the auto loan). The only portions of the inflation tax that actually go to offset government revenues would be the portions where government is the debtor (e.g. U.S. government debt), offset to the extent that the government is a debt-holder (e.g. mortgages held by Fannie and Freddie). I think. This is getting sort of messy.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

Wait, that can't be. Imagine a world in which the government has zero debt, and somebody has an auto loan. Suddenly the government prints money, causing inflation. The government did get revenue. It did devalue the bank's debt and benefit the auto owner. But it benefited the government too. The government must capture some portion of the implied inflation tax even when it isn't the debt issuer. I'm not sure how to calculate this.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 5, 2020

I'm leaning toward not supporting mechanism (4) in EPS 3.0.0 at launch time. Mechanism (3), deficit spending, is more important, more in-demand, and easier to calculate the implications properly. Tracking inflation effects requires knowledge of how much debt from each entity is held by each other entity, and I'm not fond of the idea of trying to get those data. And on top of that, I need a better understanding of how an implied inflation tax benefits government, in cases when government is not the debtor. It's getting to be too much, and too far from the core purpose of the EPS.

@jrissman
Copy link
Contributor Author

jrissman commented Aug 12, 2020

Based on final agreement within the EPS team, here is the scope of features for inclusion on this issue (#85) in 3.0.0:

  • Add deficit spending capability. This means:

    • Government can spend money on things without taking it from any other entity in the model
    • The total amount so spent is cumulated in a new “change in national debt” bucket
    • Change in interest payments is calculated based on the change in principal in the “change in national debt” bucket
    • Change in interest payments go to entities that hold government debt, so we’ll need one new input variable allocating Federal government debt among the different entities. I already found a source that can help with this. The change in interest payments are negative, first-order cash flows to government, and are handled just like any other policy-driven first-order cash flow change.
  • I think that instead of relying on the user changing the input data file io-model/AGFA to allocate a revenue-neutral return of tax revenues, or government spending, we need to give the user more control within the web app. I think we should just have three presets that can be configured using levers:

    • Return to households. This represents climate dividends or individual income tax reduction.
    • Return to businesses, allocated to ISIC codes proportionally to total employee compensation. This represents reductions in payroll taxes, such as social security taxes or medicare taxes.
    • Return to businesses, allocated to ISIC codes proportionally to total value added. This represents reductions in corporate income taxes.

    Thus, the resulting set of levers would be:

    • Increased/reduced deficit spending
    • Increased/reduced spending on general government budget
    • Revenue-neutral return to households
    • Revenue-neutral return to businesses, allocated to ISIC codes proportionally to total employee compensation
    • Revenue-neutral return to businesses, allocated to ISIC codes proportionally to total value added
      The cash flow changes would be allocated proportionately among these five mechanisms by the settings of these levers. They would have a unitless 0 to 10 weighting (percentages would be confusing here, because they can add to more than 100%). They will all be grouped in the policy tree under the “Control Settings” section header with names that make it clear that these levers are a conceptual set, but they will be separate levers, not subscripted elements of the same lever, so that they can use different policy implementation schedules.
  • The five levers above will be subscripted by policy, with an extra subscript element for all remaining cash flows (apart from those covered by separate policies). This will allow the revenue from certain policies to be allocated using different settings for these government revenue handling levers than for the remainder of the policy package. The policies that will have individually-broken-out capabilities are limited to tax and subsidy policies, a complete list of which is:

    • Carbon tax (Note to self: remember to subtract out the carbon tax rebate due to CCS and only reallocate the remainder!)
    • Fuel taxes (all fuel taxes will share a set of lever settings, not separately by fuel)
    • EV Subsidy
    • Electricity generation subsidies (like PTC)
    • Electricity capacity construction subsidies (like ITC)
    • Subsidy for distributed solar capacity (in the EPS’s Buildings sector)
    • Subsidy for thermal fuels (typically a user models a removal of this subsidy)

    Of course, almost every policy lever in the model changes government tax receipts in some way, e.g. by changing the quantity or types of things purchased by someone. That doesn’t mean every policy is a tax policy. Only the policies in the list above, which change tax/subsidy rates (not the quantity of a taxed or subsidized good) count as tax or subsidy policies.

  • The “default” behavior, which is used in newly-created, blank, user-created scenarios, shall be as follows. (These can be easily updated via input data changes during testing.)

    • Carbon tax (100% return to households)
    • Fuel taxes (100% return to households)
    • EV Subsidy (100% deficit spending)
    • Electricity generation subsidies (100% deficit spending)
    • Electricity capacity construction subsidies (100% deficit spending)
    • Subsidy for distributed solar capacity (100% deficit spending)
    • Subsidy for thermal fuels (100% deficit spending)
    • Remainder of policy package (33.3% deficit spending, 33.3% government budget, 33.3% return to or tax on households)
      This should produce a relatively neutral, balanced approach, which is appropriate when the scenario is empty and we don’t know what policies the user is going to adopt. Note that the settings will show up in the lower left pane, similar to the COVID-19 recession setting, which should be a good visual flag to a user that these settings exist and can be changed, if they aren’t what he/she wants.
  • Remember that all of these settings apply to cash flow changes with both positive and negative sign! For example, a revenue-neutral return of tax revenue to households becomes a tax on households when government cash flow is negative. As there is no ideal setting of these levers that can work for all possible policy packages, they must be exposed in the web interface, and the user will need to set them to something sensible, given the context of whichever other policies he/she has chosen to implement in the policy package. This will also help users understand the true scope of policy design decisions they must make in the real world in order to avoid unintended consequences. Additionally, this will allow users to realize the model has these capabilities that would otherwise go unnoticed.

  • I do not plan to implement any “printing money” capability for the 3.0.0 launch.

  • I do not plan to implement any “foreign aid” capability (as mentioned by Skip) for the 3.0.0 launch.

  • I’m going to add a stacked area graph of the quantity of change in government revenue (positive or negative) handled under each mechanism, so that users can clearly see the balance between different mechanisms in use and how many dollars are flowing through each mechanism. I think this will be a valuable output graph for understanding what a policy package is doing, and it will be especially important when people use custom implementation schedules to change the allocations to different mechanisms over the course of the model run.

  • Add graphs that break out the total change in jobs, GDP, and employee compensation into direct, indirect, and induced components. These will either be stacked area or multi-line graphs, depending on what works best for visualizing these data.

  • Once the government revenue use structure is done, I need to update the cost metric calculations (on the Cost Outputs sheet, and as used in the cost curve chart) to respect the government revenue use allocation choices made by the user. We don't need to have two separate versions of any output graphs (with and without revenue-neutral taxes and subsidies) any more, but we need to make sure the main version of each such output graph updates itself to reflect the user's choices about revenue-neutrality in these levers. For example, this likely requires subtracting all increases in government revenue that were reallocated to other entities from Change in CapEx plus OpEx. This will ensure the cost graph correctly reflects the lever settings chosen by the user, and avoids retaining the simplistic representation of revenue-neutrality from the 2.x series, now that we're able to calculate revenue neutrality in more detail in the 3.x series.

  • I/O model documentation will be updated to reflect the final structure.

@jrissman
Copy link
Contributor Author

Commit 9f94800 adds breakouts of direct, indirect and induced changes for jobs, GDP, and compensation

jrissman added a commit that referenced this issue Aug 12, 2020
@jrissman
Copy link
Contributor Author

Commit 0c45d1f adds the government revenue cash flow accounting graph.

@jrissman
Copy link
Contributor Author

Jim Barrett got back to me today. Based on his email, I think there is one more tweak that we should include in the 3.0.0 scope:

When we are subscripting the five government revenue for each tax and subsidy policy, as well as one subscript element for the rest of the policy package, we may want one more subscript element governing how changes in interest on the national debt are paid for. This is because if the "rest of the package" setting is set to deficit spending, and a policy package causes deficit spending, the inherited behavior from the "rest of the package" setting will cause the interest to be funded with additional deficit spending. This could lead to an exponential feedback loop of increasing national debt and interest payments. Providing a subscript element for service on the national debt means that this could be configured to be handled through mechanisms such as increasing taxes or cutting government spending, avoiding the exponential debt feedback loop.

(Since we're now looking at having two non-policy elements in this subscript, I will consider creating a new subscript range for this, rather than trying to use the existing "policy" subscript. That won't affect model workings or results - it's just a matter of what would be the cleanest internal design.)

@jrissman
Copy link
Contributor Author

Commit a4a9eb1 implements deficit spending, changes to national debt, and interest payments on the national debt

jrissman added a commit that referenced this issue Aug 14, 2020
jrissman added a commit that referenced this issue Aug 15, 2020
…dwork (#85).  Also, improves accuracy of change in carbon tax revenue in regions that have a non-zero BAU carbon tax rate.
jrissman added a commit that referenced this issue Aug 18, 2020
jrissman added a commit that referenced this issue Aug 18, 2020
jrissman added a commit that referenced this issue Aug 19, 2020
…tely for each of nine government cash flow types (#85)
@jrissman
Copy link
Contributor Author

This issue is completed (all scoped features are built and tested) in commits 9f94800, 10345e1, 0c45d1f, a4a9eb1, a94d40d, ce6cfa7, d827a52, 11bc7b5, and 5a49f7d.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants
@jrissman @robbieorvis @ssonniaa and others