-
Notifications
You must be signed in to change notification settings - Fork 159
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
minimum wage scneario #454
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All in all reads already well and nicely docuemnted.
I suggest to replace s_wage by the actual labor_costs_per_unit that you have in your other module. Is that possible?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine in general!
I have some minor requests for changes.
p36_calibration_hourly_costs(iso) Additive calibration term for hourly labor costs (USDMER05 per hour) | ||
p36_cost_share(t,i) Capital share of factor costs (1) | ||
p36_share_calibration(i) Additive calibration term for capital shares (1) | ||
p36_nonmagpie_labor_costs(t,i) Labor costs from subsidies and VoP not covered by MAgPIE (mio. USDMER05) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is VoP? Can you add an explanation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VoP means Value of Production (the part not covered by MAgPIE comes from wool, beeswax, honey, silk-worms)
p36_hourly_costs_increase(iso) Difference between minimum hourly labor costs and actual hourly labor costs in 2050 (USDMER05 per hour) | ||
p36_hourly_costs_iso(t,iso) Hourly labor costs in agriculture on iso level after including minimum wage (USDMER05 per hour) | ||
pm_hourly_costs_baseline(t,i) Hourly labor costs in agriculture on regional level (USDMER05 per hour) | ||
pm_hourly_costs(t,i) Hourly labor costs in agriculture on regional level after including minimum wage (USDMER05 per hour) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These two new interfaces are very similar and also have the same unit.
Therefore, you could merge these into one interface with a set for distinction between baseline and minimum wage scenario.
@tscheypidi What do you suggest?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, that should be merged into one parameter
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done (also for p36_hourly_costs_iso)
@@ -859,6 +859,16 @@ cfg$gms$s35_hvarea <- 0 # def = 0 | |||
# * optimization | |||
cfg$gms$employment <- "exo_may22" # default = "exo_may22" | |||
|
|||
# * global minimum wage that needs to reached in all countries by 2050 | |||
cfg$gms$s36_minimum_wage <- 0 # default = 0 (no minimum wage) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is that a binary 1/0 switch or does it have a unit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's a USD/h value, I added the unit in the description
p36_hourly_costs_increase(iso) Difference between minimum hourly labor costs and actual hourly labor costs in 2050 (USDMER05 per hour) | ||
p36_hourly_costs_iso(t,iso) Hourly labor costs in agriculture on iso level after including minimum wage (USDMER05 per hour) | ||
pm_hourly_costs_baseline(t,i) Hourly labor costs in agriculture on regional level (USDMER05 per hour) | ||
pm_hourly_costs(t,i) Hourly labor costs in agriculture on regional level after including minimum wage (USDMER05 per hour) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, that should be merged into one parameter
p36_hourly_costs_iso(t,iso) Hourly labor costs in agriculture on iso level after including minimum wage (USDMER05 per hour) | ||
pm_hourly_costs_baseline(t,i) Hourly labor costs in agriculture on regional level (USDMER05 per hour) | ||
pm_hourly_costs(t,i) Hourly labor costs in agriculture on regional level after including minimum wage (USDMER05 per hour) | ||
pm_labor_cost_scaling(t,i) Multiplicative factor describing increase in hourly labor costs to match minimum wage (1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is that interface needed? I would have thought that if you provide the hourly costs to the modules they should be able to compute the respective labor costs? Isn't it possible that the modules compute the required working hours and then base their calculations on pm_hourly_costs
(diving the given labor costs by hourly costs should give the hours one should start with)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the switch s36_scale_productivity_with_wage
can now take any positive value which defines how strongly labor productivity should be affected by higher wages (instead of being a binary switch). The new interface is pm_productivity_gain_from_wages
which replaces the interface pm_labor_cost_scaling
*' average hours worked per employed person per year. Total labor costs include | ||
*' labor costs from crop production (see [38_factor_costs]) and livestock production | ||
*' (see [70_livestock]), and some labor costs for crop and livestock production | ||
*' which are not covered by MAgPIE. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Github is complaining here and in some other spots about missing newlines. Perhaps you can check why this is happening (might be coming from the text editor you use)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see any complains in the updated files, either I'm not looking for the right thing, or I already fixed them unknowingly with the other changes...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good
all requested changes have been addressed
🐦 Purpose of this PR 🐦
This PR introduces the option to include a global minimum wage set by
s36_minimum_wage
, which can either lead to total labor costs being scaled accordingly (s36_scale_labor_costs <- 1
), or it is assumed that productivity increases such that total labor costs stay the same (s36_scale_labor_costs <- 0
).The 38_factor_costs realization "mixed_reg_feb17" was removed as it is not used anymore. In the realization
sticky_labor
the calibration of the share parameter was fixed, and the option to fix the capital need (i.e. not allowing for substitution between labor and capital) until a given years38_fix_capital_need
was introduced.🔧 Checklist for PR creator 🔧
📉 Performance loss/gain from current default behavior 📈
Added changes to
CHANGELOG.md
Compilation check (model starts without compilation errors - use
gams main.gms action=c
in model folder for testing).No hard coded numbers and cluster/country/region names.
The new code doesn't contain declared but unused parameters or variables.
Where relevant, In-code comments added including documentation comments.
Made sure that documentation created with
goxygen
is okay (usegoxygen::goxygen()
for testing).Changes to
magpie4
R library for post processing of model output (ideally backward compatible).Self-review of my own code.
For high risk runs: validation of major model indicators - Land-use, emissions, food prices, Tau. %Delete this line in case it is not a high risk run%
old default vs. new default
![default_cropland](https://user-images.githubusercontent.com/17687509/193816571-cd437d9a-fa10-456f-9338-b050a2aec678.png)
![deafult_tau](https://user-images.githubusercontent.com/17687509/193816584-87179b6f-ab07-49f2-8f0c-2fc5223c7b1a.png)
![default_foodExpenditure](https://user-images.githubusercontent.com/17687509/193816593-db5f33d6-8867-40d3-b344-9d818634315d.png)
results of wage scenario (blue: no minimum wage, red: minimum wage without productivity gain and no labor/capital substitution, green: minimum wage without productivity gain but with labor/capital substitution, purple: minimum wage with higher labor productivity fully compensation higher labor costs, orange: minimum wage which leads to some productivity gains but not fully compensating the higher costs)
![wageScenario_laborCostShare](https://user-images.githubusercontent.com/17687509/193817087-a1f543be-f52d-4c3d-bfab-0f9044d64dfe.png)
![wageScenario_agEmpl](https://user-images.githubusercontent.com/17687509/193817095-6eff7a7e-2a17-4acf-b9c7-636be3d679f2.png)
![wageScenario_cropProduction](https://user-images.githubusercontent.com/17687509/193817113-fd96e34d-f8c4-4261-bf7b-13d35fb4eb92.png)
![wageScenario_foodExpenditure](https://user-images.githubusercontent.com/17687509/193817120-06a76266-3715-4dc8-a214-5c0d1e5486f5.png)
change in default sticky_labor behavior (due to updated calibration of the share parameter)
![stickyLaborUpdate_laborCostShare](https://user-images.githubusercontent.com/17687509/193817154-a56ba4b4-b045-4d52-b839-8db6233e7016.png)
![stickyLaborUpdate_cropland](https://user-images.githubusercontent.com/17687509/193817170-902f6b91-0a39-4f38-a1fe-69600a8d2eb2.png)
![stickyLaborUpdate_cropProduction](https://user-images.githubusercontent.com/17687509/193817180-36d5b2eb-8f52-4d2d-b050-7a08b5e2875e.png)
NA
🚨 Checklist for RSE reviewer 🚨
CHANGELOG
is updated correctly🚨 Checklist for MAgPIE reviewer 🚨
CHANGELOG
is updated correctly