 Good day. This is the third session on the Zambian tax benefit micro simulation model micro Zamod and in this session We're going to be looking at the tax and benefit policies in a lot more detail We're firstly going to start off by understanding how tax benefit policies are constructed and in this instance We're going to look at functions and parameters. We're then going to look at how to run the model and access the output So to give a brief summary Systems contain groups of policies policies in turn are constructed from functions and Functions perform calculations to create the model output So again, we can look at this diagrammatically So in micro Zamod version 1.4. We have two systems. We have the 2010 system and the 2015 system But as I've mentioned work is currently underway to incorporate the 2016 and the 2017 system We then have groups of policies. So we have policies on income tax. We have a policy on the social cash transfer We have a policy to policies on pension contributions, and then we have a policies on bats excise and other duties We then have functions which perform calculations to create the model output So for example in our social cash transfer that policies made up of a number of functions 60 and to be exact, but within within these functions, we have I mean within within this policy we have functions which perform eligibility test and a function that assigns an amount calculation so functions are really the building blocks of all policies in micro Zamod and the combination of different functions from the full set of The functions allow for the construction of almost any policy So functions can be classified in three categories. We can have policy functions for implementing tax and benefit policies We can have system functions for implementing the framework of the model And we can have special functions which are really used and are not used at all in micro Zamod So we have ten functions in micro Zamod. We have four policy functions We have and these are Elig Ben calc, which stands for benefit calculator Arrathop and shed calc We then have six system functions And these are upgrade deaf far deaf IL, which is income list deaf to you Which is tax unit deaf const which is constant and deaf output, which we've seen in our previous session So each function consists of a header displaying the name of the function and a switch Telling us whether the function is activated i.e. switched on or deactivated a switched off or not applicable Which is an NA the function is then divided into a series of parameters So we can have many parameters appearing within multiple functions and some parameters being specific to particular functions So most of the policy functions and some of the system and special functions provide common parameters They are compulsory compulsory and optional parameters For example the parameter tax underscore unit must be included in all of the policy functions Otherwise micro Zamod will issue an error message and this is because if we don't include a tax unit the model won't know who to assign the benefit to or who to Assign the liability of the tax for example So micro Zamod is told how to calculate the policy by setting the parameters of the functions to appropriate values So here we have an example of our social cash transfer in rule areas And again, I'll be going through the PowerPoint first and then moving over to the live version of the model to demonstrate the concepts So as I said earlier our social cash transfer for both For rule areas at least is made up of 16 functions It's made up of one depth bar function two LH functions, which stand for eligibility One arithop function which stands for arithmatic operator and 12 bencalc functions, which stand for benefit calculator So if we look at the first LH Function, which is number 11.2 on the spine We can see that this perhaps this function is made up of three parameters or there are three parameters in this LH function We can then see that there are switches Next to the function both the function and the policy and these are currently switched on so Model and look at our social cash transfer for rule areas We can see so we can make this a bit bigger so that it's a bit easier to read So if you click if you go to the bottom right hand side of the main user interface And where it says text size and click on the little plus sign there You could make the writing a bit bigger so it's easier to see So here we have our social cash transfer for rule areas We have as I said, it's made up of 16 functions 11.1 to 11.16 on the spine We have one depth bar function, which specifies our intermediate Intermediate variables that we're going to be using in the model in the in the policy rather We have two elige Functions which specify eligibility. We have 12 Ben calcs, which Actually calculate a living conditioned index, which is similar to a proxy means test in order to assign The benefit we then have one are thought which simply scales the score The scores generated from this calculation from these 12 Calculations scales a score to make it range between 0 and 1000 And we have two final two Ben calcs to assess eligibility so if we look at those briefly I will go through this in a lot more detail in the final run through of the model in session 5 So the final Ben calc assesses all the eligibility condition for the rural Areas and then allocates the standard monthly social cash transfer amount and Then we have our output variable, which is bsa underscore s and all of this is done at the level of the individual We then have a final Ben calc, which is an additional payment for households containing one or more disabled people so we have our Eligibility for for rural recipients of the social cash transfer and on top of the Criteria specified in the Ben calc above we have one more criteria, which is ddi 0 1 is equal to 1 which Indicates that there's one or more disabled people in the household so if Individuals in rural households fulfill this criteria. They are then get it. They are then allocated another amount Which is double the standard social cash transfer amount again, I'll be talking about that About this policy and the rest of them in a lot more detail in our final session So this is just to give you a brief overview So our function elige as I've mentioned already Elige determines eligibility And it sets a variable to one if an individual is eligible or zero if they are not based on one or more conditions It must contain the parameters elige underscore con and tax underscore unit and The conditions may be simple. For example, we can have DAG which Is a variable For age being greater than or equal to 60 or we can have built-in queries such as is depth child Which is basically asking if the individual is a dependent child Each condition is enclosed by curly brackets and conditions may be combined with with and which is symbolized by the ampersand Sign and or which is symbolized by a straight slash The components can include variables in cumulus numeric amounts functions and footnotes and And the conditions can be assessed at different levels and again, I'll speak more about these last two bullet points in a later session So here we have an example of implementing the social cash transfer using elige. So if you remember So here we have an example of implementing the social cash transfer using elige So if we look at our elige function, we see that is made up of three parameters We have our elige underscore conned. We have our output underscore var and we have our tax underscore unit And if you look at the criteria specified in the 2015 system and In our first parameter elige underscore conned. We see that we have a variable called dhh equals to 1 So again, if we wanted to find out what this variable was We would use our data requirement document and look for this variable in that document But for the purposes of this power point, I'll just have this Video rather I'll just tell you what the variable is so The d as you'll remember is the broad category of the variable and then we know that in your mod and Microzam mod that d stands for demographic variable So in this case the d stands for demographic at demographic and the hh stands for household so this First criteria is saying that in order for the person to be eligible to receive the social cash transfer They have to be the head of the household. So that has to equal to one indicating that they have to be the head of the household and The second part of the Criteria states that dsd has to equal to one again d broad category of variable Standing or meaning are the demographic variable and in the sd stands for same district So in this case The individual has to have resided in the same district for 12 months and if you look at our comment section, you can actually see that we've stipulated These variables In the section so dsd equals one means that the individual has been in the same district for 12 months and Dr. U is equal to naught is a is a demographic variable looking at whether the Household is in a rural area or urban area. So in this case d r u equals to naught equals means that the household is in a rural area Whereas if d r u was equal to one which is the case for the social cash transfer in urban areas This would mean that the household is in an urban area So again, we can go over to the model and look at this first Elige So here it is on the model. We've got our three parameters In our elige function, we've got our three criteria for eligibility for the first part of the eligibility Which I already explained so after An individual fulfills all of these three criteria an output variable called i underscore score rural underscore 12 underscore m Is generated and this is an intermediate intermediate variable that we will use throughout this This policy in order to calculate The final eligibility and then again our tax underscore unit is at the level of the individual So that's Our first elige function We then have our arithop function and our arithop is just a simple calculator It must contain the parameters formula and tax unit a formula again can include variables income lists numeric amounts queries and footnotes and The main operators here are brackets and plus minus multiplication and division. So just normal Simple calculator and the queries automatically calculate particular conditions for example number of children in the household or carry out tests for example whether or not a person is married and If you remember our built-in query that we saw in our previous In our eligibility when we looked at a lot at our eligibility We can also similarly have queries in our arithop function So footnotes are used for example for applying upper and lower limits to a function or variable or specifying a level And this this is denoted by a hash So here we have an example of implementing the social cash transfer using our arithop and I've spoken about this briefly But I'll go back to it on the model and look at it there So we have one arithop, which is number 11.4 on the spine And in this case what this arithop is doing is it's scaling the score the score generated from This In effect proxy means test with which is the living conditions index So it's scaling the score to make it range between zero and one thousand So what it does it it takes the intermediate variable called I underscore rule underscore live under underscore score Adds a number of 1854 just a simple addition and then divides by another number 6.904 and all the reason it's doing this is just to make it scale To make the the score range from between zero and one thousand. So this is just a simple Calculator and in the output variable, which is generated is called I underscore rule underscore live underscore score underscore scaled and all of this is done at the level of the individual So again, we've just seen that on the model So the last function that we're going to be talking about is our Benkalk So Benkalk combines the functionalities of Elige and arithop and this is particularly useful for benefits Or social grants and is often referred to as the benefit calculator as previously mentioned So there are eligibility conditions similar to our Elige function called comp underscore conned and formulae To calculate the value of the benefit assigned to eligible eligible individuals or tax units and these can either be called comp underscore per Elige or comp underscore per Tu which is tax unit So again the same rules for syntax apply as for Elige underscore conned in Elige and formulae in arithop So it's just combining the two those two functions So Benkalk can have multiple conditions with different amounts being assigned for different conditions And this is what makes it particularly useful is that instead of always using Elige and arithop together you can just have a Benkalk and Have multiple conditions with different amounts being assigned for different conditions And the eligibility conditions and corresponding formulae are Specified in separate parameters So here we have an example of implementing the social cash transfer using a Benkalk So I think I'll go over to the model to explain this one So in this Benkalk work combining the functionality functionalities of both Elige and arithop so our comp underscore conned is our eligibility criteria for rule areas So as I mentioned earlier on we have a one condition stating that the individual must be the head of the household Which is DHH equals to one? We have another condition specifying that the individual must have resided In the same district for 12 months or more and then in that we specify that intermediate variable called I underscore rule underscore 12 underscore I mean underscore 12 m And so if that is equal to one that means that they have been living in the same district for 12 months or more and Additionally, we didn't look at this because it's in the second Eligibility function, but we also have a fit for work ratio test and the output variable that we generated from that The intermediate variable is called I underscore rule underscore fit underscore for underscore work And if this is equal to one this means that they meet the they have passed that fit for work ratio test in other words That there are no adults who are fit for work So we have three those three criteria For rule areas which are all initially defined in the first two Elige functions So if I can open those up Very briefly we see that we have all those criteria and in addition The fit for work Ratio tests so we've combined all of those into the single Bend calc Additionally, we have one more criteria, which is that the scaled score which we generated from This living conditions index has to be less than 460 and The intermediate variable that we use in this regard is called I underscore rule underscore live underscore score underscore scaled again When I go through the entire model and go through every policy step by step, this should be a lot more clearer than it is now so if a individual Fulfills all of these criteria then they are allocated the standard monthly cash Social cash transfer amount per household, which is 70 kwacha per month and the output variable which is generated is called BSA underscore S B standing for benefit SA standing for social assistance and underscore standing for simulated and all of this is undertaken At the level of the individual and the amount is allocated to the head of the household so that's how That's how we've Implemented the social cash transfer using a Bend calc So the last function that we're going to be looking at is a function called shed calc So shed calc base basically takes a base amount and then calculates a schedule of rates for example income tax bans So again, I'll move over to the model to explain this one as well so if we go to our Income tax policy Which is number nine on the spine if we open that up go to our third function Which is our shed calc. We see how this function has been implemented in the model So what this function does it takes a base in this case our base is called ttb underscore s It then applies a series of tax bans on the income so for example if an individual is earning between zero and 36,000 quatcha per year they pay zero tax So if you earn between zero and thirty six thousand quatcha per year you pay zero tax and in the next band Once you start earning thirty six thousand and one quatcha to forty five thousand Forty five thousand six hundred quatcha then this next Band of income is taxed at at zero point two five so 25 percent and then From forty five thousand six hundred and one to seventy thousand eight hundred That next portion of income is taxed at thirty percent So as soon as you start making forty five thousand six hundred one this to seventy thousand eight hundred You then taxed thirty percent on that portion of income and Then the last band is when you start making seventy thousand eight hundred and one quatcha per year and above You're then takes taxed thirty five percent on that portion of income and Then so the model calculates all of these Various tax applies all these tax bans to the income and then generates a variable called tin underscore s Which stands for the t stands for tax and the ions stands for income Underscore s stands for simulated and all of this is done at the level of the individual so I've already gone through How The schedule of rates to income tax bans is applied in the model So Now we're going to look at running the model So micro zermod output is based on two inputs an individual and household micro data and The rules on how to calculate taxes and benefits stored in the content file So using these two information sources the model calculates all taxes and benefits that have been implemented The calculations are carried out for each individual and household in the data set and the result is written to an output file The simulated output is at the individual is at the individual level unless specified otherwise So in order to run the model we need to go to the run micro zermod, which is currently still called run your mod Button in the top left corner of the user interface to activate the run micro zermod dialogue box So then a list of systems which are ready to run Will will appear and we need to select a system for running by checking the box to the left of the system So the list also provides a drop-down box for each system which contains all available data sets kindly We only have one data set that we're using in micro zermod, which is the 2010 LCMS so the output path path which is at the bottom of the Run dialogue box to find the folder where the model stores its output So once the required selections have been made click on the run button to start the simulation process So we can go over to the model and actually do this now So we'd go to the run your mod Button as it's still currently called Depending on which systems we want to run we would either tick or untick So in this case, I'll just run both the 2010 and the 2015 system and If we click on run and most importantly the output path is specified and Most importantly the output path is specified At the bottom of the run dialogue box. So then we can click on run and Wait for our model to run So while it's running, I'll just go through the rest of the PowerPoint So that's this is what we've just seen so all system data set combination selected for the running Are listed so currently we are running the ZM underscore 2010 system With the 2010 data set and the ZM underscore 2015 system again with the 2010 data set In the second column, we have the status of the run So the run can either be running as we we just saw it could be queued. It could be finished or aborted So On our PowerPoint we can see that the run has finished and we'll go over to the model in a second to look at Whether or not our run has finished But it's important to note that the time needed by the simulation depends on the PC processing speed the size of the data set and The complexity of the system So now we can go back and check if our model has finished running So as we can see our model has finished running and it took just under a minute to run both Systems so as we can see there's an error log But in this case there are no errors if if the run is finished and there's an error log It will simply contain warnings But if there are fatal errors that run will be aborted. So in our case that didn't happen So this is our error error log You can see we have no fatal errors So in micro ZM has finished its calculations the output is stored as one or more text files at the storage place Defined in the field output path, which is at the bottom of our run dialogue box the main text files called for example ZM underscore 2015 underscore STD as Defined in the policy output underscore STD underscore ZM And in this case is ZM stands for Zambia 2015 is a system name and STD stands for standard output The file contains the variable defined in the policy output underscore STD underscore ZM Output files can be viewed in a text editor program or imported into any statistical analysis package for example stator for more detailed analysis a Selection of summary statistics can also be calculated within the model using the statistics presenter application Which will be the focus of session five of this training the stats presenter uses the output file For example ZM underscore 2015 underscore STD The model also produces a header text file relating to the output file and error logs Relating to the output file or also stored as text files So now we're going to spend some time exploring the benefit policies together and In particular, we will look at in detail at the functions Elig arithop and Ben calc Thank you very much