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

[1] - Labour supply impact overall #26

Merged

Conversation

masterismail
Copy link
Collaborator

@masterismail masterismail commented Jul 30, 2024

Usage

Example for labour_supply_impact/earnings/overall/relative

from policyengine import EconomicImpact


# # Define the reforms and microsimulation instances
yoyo = {
  "gov.hmrc.income_tax.rates.uk[0].rate": {
    "2024-01-01.2100-12-31": 0.55
  },
  "gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.bounds.income_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.income_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  },
  "gov.simulation.labor_supply_responses.substitution_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  }
}

impact = EconomicImpact(reform=yoyo,country="uk")



res1=  impact.calculate("labour_supply_impact/earnings/overall/relative/IncomeLSR")
res2 = impact.calculate("labour_supply_impact/earnings/overall/relative/SubstitutionLSR")
res3 = impact.calculate("labour_supply_impact/earnings/overall/relative/NetLSRChange")
print(res1)
print(res2)
print(res3)

Output

{'income': -1.74}
{'substitution': -2.18}
{'net_change': -3.92}

Example for labour_supply_impact/earnings/overall/absolute

from policyengine import EconomicImpact


# # Define the reforms and microsimulation instances
yoyo = {
  "gov.hmrc.income_tax.rates.uk[0].rate": {
    "2024-01-01.2100-12-31": 0.55
  },
  "gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.bounds.income_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.income_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  },
  "gov.simulation.labor_supply_responses.substitution_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  }
}

impact = EconomicImpact(reform=yoyo,country="uk")



res1=  impact.calculate("labour_supply_impact/earnings/overall/absolute/IncomeLSR")
res2= impact.calculate("labour_supply_impact/earnings/overall/absolute/SubstitutionLSR")
res3 = impact.calculate("labour_supply_impact/earnings/overall/absolute/NetLSRChange")
print(res1)
print(res2)
print(res3)

Output

{'income_lsr': -20.09}
{'substitution_lsr': -25.12}
{'net_change': -45.21}

Example for labour_supply_impact/earnings/by_decile/relative

from policyengine import EconomicImpact


# # Define the reforms and microsimulation instances
yoyo = {
  "gov.hmrc.income_tax.rates.uk[0].rate": {
    "2024-01-01.2100-12-31": 0.55
  },
  "gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.bounds.income_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.income_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  },
  "gov.simulation.labor_supply_responses.substitution_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  }
}

impact = EconomicImpact(reform=yoyo,country="uk")



re1 =  impact.calculate("labour_supply_impact/earnings/by_decile/relative/IncomeEffect")
re2 = impact.calculate("labour_supply_impact/earnings/by_decile/relative/SubstitutionEffect")
re3 = impact.calculate("labour_supply_impact/earnings/by_decile/relative/Total")
print(yo)
print(yoo)
print(yooo)

output

{'income': {1: -0.55, 2: -0.91, 3: -1.17, 4: -1.2, 5: -1.29, 6: -1.77, 7: -2.16, 8: -2.22, 9: -2.07, 10: -1.34, 11: -0.03}}
{'substitution': {1: -1.36, 2: -2.22, 3: -2.83, 4: -3.36, 5: -3.29, 6: -3.69, 7: -3.45, 8: -2.72, 9: -1.48, 10: -0.65, 11: 0.0}}
{'net_change': {1: -0.0191, 2: -0.0313, 3: -0.04, 4: -0.0457, 5: -0.0458, 6: -0.0546, 7: -0.0561, 8: -0.0493, 9: -0.0354, 10: -0.0199, 11: -0.0003}}

Example for labour_supply_impact/earnings/by_decile/absolute

from policyengine import EconomicImpact


# # Define the reforms and microsimulation instances
yoyo = {
  "gov.hmrc.income_tax.rates.uk[0].rate": {
    "2024-01-01.2100-12-31": 0.55
  },
  "gov.simulation.labor_supply_responses.bounds.effective_wage_rate_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.bounds.income_change": {
    "2024-01-01.2100-12-31": 1.1
  },
  "gov.simulation.labor_supply_responses.income_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  },
  "gov.simulation.labor_supply_responses.substitution_elasticity": {
    "2024-01-01.2100-12-31": 0.1
  }
}

impact = EconomicImpact(reform=yoyo,country="uk")



re1 =  impact.calculate("labour_supply_impact/earnings/by_decile/absolute/income_effect")
re2 = impact.calculate("labour_supply_impact/earnings/by_decile/absolute/substitution_effect")
re3 = impact.calculate("labour_supply_impact/earnings/by_decile/absolute/total")
print(re1)
print(re2)
print(re3)

output


{'decile_avg': {'income': {-1: 0.0, 1: -18.93514478022724, 2: -39.29859107484308, 3: -91.08124519162955, 4: -223.90703511377487, 5: -395.2897841682955, 6: -858.9841421726319, 7: -1294.696297621867, 8: -1629.7335136696418, 9: -2067.3501730780317, 10: -2026.5972444498755, 11: -732.5424194335938}}}
{'decile_avg': {'substitution': {-1: -12.138948359659084, 1: -46.7022874698809, 2: -95.56810382976973, 3: -220.22800767578707, 4: -626.9686012292634, 5: -1009.4598365869709, 6: -1787.6298434369562, 7: -2069.128367294302, 8: -1997.8199081152252, 9: -1476.7513827936828, 10: -980.7895390449535, 11: 0.0}}}
{'net_change': {1: -65.6374, 2: -134.8667, 3: -311.3093, 4: -850.8756, 5: -1404.7496, 6: -2646.614, 7: -3363.8247, 8: -3627.5534, 9: -3544.1016, 10: -3007.3868, 11: -732.5424, -1: -12.1389}}

@nikhilwoodruff
Copy link
Contributor

nikhilwoodruff commented Jul 30, 2024

Can we test, in the US

  • Use CBO elasticities
  • Flat tax on AGI of 10%

What's the projected labour supply impact?

If less than 1% difference, I think we can move forward.

If bigger, let's keep looking to try and figure out why

Edit: running into memory errors here! So let's stick to the UK impacts.

@masterismail masterismail changed the title Labour supply impact overall [1] - Labour supply impact overall Aug 8, 2024
@masterismail masterismail merged commit 3a222cc into PolicyEngine:main Aug 20, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants