Q: Government transfer based on earnings cut-off

Q by email:

quick question. If the government provides subsidy to poor households (e.g., earnings are below 1%, working-age), how should I modify the codes in Model 11?

You will need two parameters, first parameter is the value of the subsidy, second parameter is the cutoff (the level of earnings below which you get the subsidy). Then you can just use an if-statement (or indicator function) in the return function to give the subsidy to people with earnings below the cutoff.

Obviously the question then is what is the value of the parameters that represents the cutoff? Likely what you want to do is solve the model once without the subsidy, compute statistics of the model one of which is the cutoff you are interested in, then use this value to solve the model again with the subsidy.

If you want, e.g., bottom 10% of earnings of working-age households, you can set simoptions.agegroupings=[1,Params.Jr] where Params.Jr is the period in which retirement begins, this way the first age-group will represent working-age. Then set simoptions.nquantiles=10, this way the first quantile will be the bottom decile (10 quantiles, so deciles). Then just call AgeConditionalStats=LifeCycleProfiles_FHorz_Case1() [obviously you need a FnsToEvaluate.earnings that calculates earnings]. Then AgeConditionalStats.earnings.QuantileCutoffs(2,1) will be the cut-off. Note: QuantilesCutoffs is of size (nquantiles+1,ngroups), the nquantiles+1 are the nquantiles-1 between the quantiles, and the other two are the min and max, the ngroups is based on simoptions.agegroupings (by default it would just be the number of model periods).

Final note: when you introduce the subsidy, it may change earnings in the model, and hence change the cut-off. One approach would be that if this change in cut-off is very small you can just ignore it, the more comprehensive/better approach would be to set it up as calibration target.

1 Like