 Okay, in the last session we looked at tax and benefit policies in some detail. We looked at the way that they were constructed from functions which were in turn constructed from parameters. In this session we're going to put that into practice because what we're going to do is learn how to add a new system to Tasmod and I'll say why in a minute, how to implement a change to an existing policy in Tasmod will do quite a simple and straightforward change in order to get the hang of it and then how to add a new policy to Tasmod, again using a fairly straightforward example. Now adding a new system, why do we add a new system? Well I think I've said in an earlier session we add a new system if we want to include a new policy year. So at the moment we have 2012 and 2015, we will be wanting to add 2016 and indeed 2017. But importantly we want it if we want to implement a new reform scenario. A new system is definitely in order. Why is this good practice? Well because if you amend policies in an existing system you tend to corrupt that existing system, particularly if something goes wrong and you don't have a record of the existing system if you're not careful. So it's always good practice to construct a reform system so that the parameters of the existing policies are preserved as a record in the system, either the base system or the 2015 system or whatever system you're basing the changes on. Okay and a new system is initially always a copy of an existing system. It can use an already implemented system as a template. You can use the base system or you can use 2015 in our case. In the first instance the new system is an exact copy of the base system except that the name of the output file will be different and we use it configured to run with the same data sets as the base system. Now there are two ways of adding a new system and I'll show you both in this presentation but also live. So first of all you can use the add system button which is in the tab country tools. You can use this for deleting systems as well. Or you can right click on the existing system you want to copy and then choose a name for the new system in the box that pops up that follows. So the new system then gets added to the main workspace in the way shown here and the systems are also added to the list in the country tools, systems and databases. Now I'm going to go across to the model and show you how this works in practice. One of the other things I'll show you to begin with is how to hide a system because actually we're going to base our reform system on 2015. So let's hide 2012. You can do that by right clicking again and go to move selected system to hidden systems box. That's great, we can even close that box down because it preserves it but it allows us more space to look at just the system that we are going to base the new system on. Now two ways of doing it and I can do it in both ways. We can go to the country tools add system. We want to base it on 2015 so you click 2015 say OK and then give the system a new name and we'll call it reform one in this case. And then it pops in there as a direct copy. Now I'm going to delete that system so I'll click on it and then delete system because I'm going to show you the other way of doing it which is the way I usually use. So we say OK are we going to delete that system? Yes we are. So now we right click on the existing TZ 2015 system and then we do copy paste system and the new system name we'll just call it reform this time. It's just a tad quicker to do it this way and we've achieved the same as we had before. OK and it's on this reform system we will do our policy changes and creating new policies etc. So let's go back to the presentation. So the two policy changes we talked about is changing existing policy and there are some fairly simple ones or more complex. Amending a means test threshold for example or a cash transfer amount is a very simple change to an existing policy. You often have to do this on an annual basis anyway when you implement a new year because sometimes in some countries these things change on an annual basis. Next you might want to remove a means test or add an extra amount for meeting a particular criteria. This is a slightly more difficult. Again some countries are moving towards having so-called universal or non means tested benefits. South Africa currently is considering removing the means test from both the child support grant and the old age grant. Another thing you might want to do is add an extra criteria for example if you were implementing some kind of old age pension be it means tested or non means tested you might want to add, if you'd already implemented such a system you might want to add a supplement for those over 80 or something. That certainly also exists in some countries. And then you might, if you've got a means test benefit you might want to vary the means test by some kind of characteristic of the person being tested. That's way more complex but they're all eminently achievable. And the examples that we give will tackle some of these. And similarly you can just add a completely new policy like a new social benefit. How will we change an existing policy? Well we're going to use, stick with our old favourite, the BSA Beachot policy because if you remember that's the policy that looks at the fixed basic cash transfer for people that are getting them and or the variable conditional cash transfer and it currently imposes a ceiling of 19,000 times in the inch innings per month on the combined payments of the fixed basic cash transfer and the variable conditional cash transfer. There it is, that's the one that was actually implemented in the model, remember using BenCalc. In the last presentation you remember I showed it being implemented by a combination of the Elige function and the Arithot function but I also intimated it's more straightforwardly done with a BenCalc and that's what it's actually done within the model and so this is a clip from the actual model. So what are we going to do? We're going to increase the maximum amount from 19,000 shillings a month and we're also going to introduce a minimum amount and remember when I talked about constants in the session where we looked at definitional policies we're going to actually convert the figures both the upper limit that exists already in the policy but the new upper limit and the new lower limit into constants so we'll be doing both of those things in changing the existing policy and again what I'll do is show it to you first in the PowerPoint and then flip over to the policy itself. So the first thing to do is copy the latest system and name it TZ2015Reform well we've done that, I showed you that when we were introducing a new system and then next introduce lower and upper thresholds as constants so a lower limit of say a thousand shillings a month and an upper limit of instead of 19,000 let's have 20,000. So the first step is to go to the constant definition and right click to add two new placeholders then rename the placeholders to $BSABeachot so I'll take a note of that because that's what I will do and that's what you should do underscore lower and another one BSABeachot underscore upper and then place the upper and lower limits into those constants so it's a thousand for the lower per month and it's 20,000 for the upper so let's do all of that I'll move across now to the model so the first thing we're going to the constant definition and there it is, that's all the constants so far defined in fact there is one called PSSNCap which is effectively the BSABeachot upper but I want to just introduce two new ones so that you can see how they're done and how you do that is that you right click on death const and then show add parameters form and then click on placeholder because you want to add two new parameters and you first of all put them in as a placeholder and then you just say how many you want and we want two, not just the one so count two and then add and then close and you'll see these two new placeholders at the bottom and we can now name these we can call one dollar BSABeachot lower I'll control C because I'm a bad slow typist then put it into the second but then rename that BSABeachot upper now it's not applicable in the 2015 scenario because that's the base scenario that we're working from but it is applicable in the reform scenario so we'll put the lower one in at 1000 and it's good practice to put hash M because that will say it's monthly and the upper one is 20,000 again hash M meaning monthly if you don't put hash M it will assume monthly for these amounts because all of the calculations in Tasmod or Euromod are done at the monthly level so we've got the 1000, 20,000 and then we should annotate it and put policy BSABeachot lower limit same again but ok so that's effectively done that we've entered the constants let's go back to the presentation now because this will be shown in the slide format here right click and then get the add parameter form add in the two placeholders and then give them the appropriate values but only in the 2015 reform system ok then we go to the policy itself then in the BSABeachot underscore TZ policy we go to the BenCalc function which we've shown already and right click to access add parameter as we just did in the def const then we select lower limb and move it above upper limb and then we enter the new constant for the lower limit in the appropriate cell and finally enter the new constant for the upper limit in the appropriate cell so let's go and do that now actually in the model so we now close up the constant definition go to look at our BSABeachot policy we're going to, as I said, enter first of all add a parameter so we show the add parameter form and this time we want lower limb we've already got upper limb so here we go, here's low limb and we add that as a parameter and close and you'll see low limb is there it's quite nice to have them in the right place so we've got low limb first then upper limb we're working only in this reform scenario so we give the lower limit the value of the lower limit constant so we type in dollar BSABeachot lower and you see it, it gives it in the list so we can select that and then for upper limit we this time calculate it as sorry, enter dollar BSABeachot upper okay so now we've effectively amended that policy in the model itself again let's slip back to the actual presentation and I'll do this in screenshots as well so we've got the, sorry I'll go back to that we've got the lower and the upper limit entered into the new BSABeachot policy in the reform note that in the non reform the lower limit is not applicable because it's only in the reform policy that we're putting the lower limit in and of course in the reform the upper limit is no longer 19,000 but it's what's contained in that constant BSABeachot underscore upper which we know is actually 20,000 now and not 19,000 okay right so that's how you amend an existing policy pretty straightforward but a lot of steps now we're going to do something more radical now is that we're going to add a new policy and we're going to make it a fairly straightforward policy and it's going to be a universal child benefit so again we copy the latest system and name it the reform which clearly we've already done actually in the model that we're working with and then you have to choose where on the spine the new policy should be located remember I said when we talked about spines that the spine lists the different policies within a system in the order in which they need to be executed so if a new policy relies on the output of an earlier policy then you need to position that new policy after the earlier policy and I gave an example in the earlier one that related to the BUN underscore TZ policy in respect of public works programs so we right click then on the policy before the one you want to introduce and select so let's do it first of all on the screen here and then I'll do it for real so we've got to use the add policy after and we then select the kind of policy a benefit policy and then name the policy we're going to name it bch underscore TZ why? because the output variable bch is a standard EuroMod output variable and it means benefit for a child b benefit ch child and you name the policy after the output variable next we right click on the new policy name and select a function and for this function bencalp will be used although we could have done a combination of ellige and erythop as before and we must remember to turn the policy and function on okay so this is it the menus and I'm going to take you through the actual model in a second so we add function and we add bencalp and that puts in the new policy bch underscore TZ puts in the function bencalp it puts us in an eligibility condition and an amount per tax unit sorry which is equivalent to the formula and an output variable and a tax unit so what we're going to do is make it very simple the eligibility condition is that you've got to be a child and for that we're going to have someone who's greater than or equal to zero now zero year olds actually are babies in the Tasman data set they are people who have been born that reached their first birthday so it's greater than or equal to zero and age less than 18 and the amount is the child benefit amount which we're going to introduce as a constant and the output variable is bch underscore S and the tax unit is individual so we may have to introduce that new variable using the variables tool if necessary and also we may have to add bch underscore S to the output policy if necessary now let's do all of that actually on the model so let's me shift across to the model itself this is the actual model right and we will actually put our bch after bun which is the eligibility for public works doesn't have to be there because it's not relying on previous information because there's no means test and there's no other eligibility criteria we might have added some other eligibility criteria because we might for example have said you can't get this new child benefit if you're getting one of the child related productive social safety net benefits that have a child addition for however we didn't we want to give it to all children in this case so we're going to add policy after and we're going to add a benefit policy okay we're going to give it a name and we're giving it a name of bch underscore S as we agreed sorry underscore S underscore TZ it's the actual the underscore S is the simulated variable that will be the output variable bch underscore TZ is the name of the policy okay so we'll put it in we've got bch underscore TZ it's got no functions in it it's got printed ben though and we'll call it universal child benefit then automatically there okay we've got a function so this is add function as we said and we're going to use bencalc so we're adding the function bencalc it automatically puts in for us the parameters that a standard bencalc has you can add additional parameters to bencalc but this is the ones you usually get we're only putting it in the reform and I think the conditions were relating only to age but DAG was greater than or equal to zero closed curly brackets each condition has to be enclosed in curly brackets you'll remember and then we want it AND and then we open the curly brackets again DAG less than in this case 18 end curly brackets forward condition now the amount or the formula goes into there we haven't actually introduced an amount yet so let's pause and go back to the defining constants and define a new constant right click you remember show add parameter form you remember put a placeholder in because it's a new something new we're going to add in and then close and we should find an empty placeholder at the bottom we do we can call this dollar b c h underscore amount we can call it what we like it's just good to call it something meaningful and we can call it to put the amount in for anything we like let's put it in for 4000 m and that's the monthly amount for universal benefit so that's straightforward now we've got that introduced so now we need to actually put that as the amount that people will get in the formula box so we'll put dollar b c h amount okay the output variable I've already talked about that the standard one is b c h underscore s and it does exist so it's in that list if it didn't exist I'll show you what we would do the tax unit we're testing each individual child so the tax unit is going to be individual you can just use the drop down menu here and put t u individual t z then obviously it's good practice to annotate all this it's important to turn this on and this on and then finally it's important to make sure that the standard output contains this new variable b c h fact it does because if I'm not mistaken there's a wild card b which means all variables beginning with b it's a variable group we're actually output into the output file so we don't need to specifically put it in we might if we were putting in something that wasn't already in our standard output file like for example we want to output some intermediate variable we might want to specify that specifically in the output file so that's all great so that's pretty well done we've turned it on I did mention that if the variable that you wanted to use didn't exist you would need to create that in the administration tools and the variables tool that's something that again we can talk about more and will have done in classes but in fact this is the list of already variables already there and you'll see that variable 44 is b c h s s if not you can create new variables you can add variables and indeed you can add acronyms if the acronym isn't already created but it's fine as far as we're concerned so we've created this and I think we've now got a policy that's switched on that's output variables go to the output file and I think we're ready to roll so let's go back to the presentation I'm not going to do this but after you have made these changes it's important to save changes to the model you can actually switch on a switch which will enable differences between the base and derive system to be highlighted in colour so that you can see what you've tampered with and then you run the reform system in the same way as any other reform system sorry any other system and just ticking the checkbox and that's it so that's what you do to either amend an existing policy or to test out or create a new policy I hope that's all clear the important thing in the activity is to replicate what we've done in this session so add a new system introduce four new policies I'm suggesting we don't do any more amending of existing policies because there aren't that many existing policies but the four policies that I'm wanting us to go through and introduce is a child benefit payable only in respect of double orphans or disabled children an old age benefit available only to those in households below the food poverty line a disability benefit for disabled people below the food poverty line and a youth benefit for unemployed young people all of those you have a go at and then we'll go through with you afterwards and to see how you all get along and that I think is it as far as I'm concerned just remains to say thank you