Federico Quarona, Alberto Vercellino

Computer Science and Simulation for Economics

Project work on

"Redistributive policies."


The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.

created with NetLogo

view/download model file: redistributive_policies.nlogo


The purpose of the project is to analyse the consequences and the effectiveness of various redistributive policies. The simulation shows how the social composition of a given country can be modified by developing a more pervasive Welfare State based on a progressive fiscal system.
In our model the policy-maker, besides choosing the rates of income tax for each bracket, can adjust the level of social assistance by deciding to grant poverty allowances and/or by giving free public goods' provisions.


The population included in this simulation's model has a random level of assets between 0 and 1000. According to this "Asset level" each person is labelled as a rich (Assets > 666), a middle-class member (333 < Assets < 666) or a poor (Assets < 333). In the meantime the agents become respectively green-coloured (rich people), yellow-coloured (middle) or red-coloured (poor). The model also takes into account agents' income and consumption, both calculated randomly but respecting constraints related to the assets' level.
At each cycle people are taxed with their respective tax-rates and the collected amount becomes ready to be used for welfare policies and public goods' provisions depending on the settings you choose. When there's a certain sum of money intended to be used for welfare policies, this amount is given to the poor people by granting poverty allowances distributed at each cycle. On the other hand, when there's a certain sum of money for public goods, the program spreads them up on the world colouring some patches in blue. Poor people use to find (and consume) more public goods than rich people thanks to the priority accorded to them in the model: this exemplifies the higher marginal utility of poorer subjects, who then will be more willing to consume a public good. When an agent exploits a public good, his assets' level increases of a correspondent amount of richness.


Before starting the model, you can choose the redistribution's level by adjusting tax-rates, by deciding how much money will be used for granting allowances and how much money will be spent for public-goods. Moving the "%WelfareExpenditure" slider you can choose the amount of money intended to be used for all the redistributive policies (public goods' provision and poverty allowances). The remaining amount will not be spent and is expected to be used for administrative expenses.
Moving the "%MoneyToPoorPeople" slider you can choose the percentage of the amount of money reserved for redistributive policies that you want to use just for allowances. The remaining amount will be used to provide public goods.
You can also decide whether to activate or not the "Chase-PublicGoods" function by using the appropriate switch. It makes poor people chasing public goods much more than rich people.
At last, you can see the assets' amount for each person by using the switch "Show-Assets?".
To create the population press "Setup" and to start the simulation press "Go".


While the model is running you can notice the different monitors' trend. The "Economy growth" one, for example, shows you the average assets' variation from the initial situation and tells you whether the population is getting richer or not.
Also notice that, when a social class is empty (there are no agents left for a certain class), the respective "average assets" monitor shows an hyphen (-).
Huge margins to study the model are possible by resetting to zero the slider "%MoneytoPoorPeople", using the model only with the remaining sliders and switches. Firstly because the capability of poor people to find public goods is greater than that of the other agents: this is already an efficient tool that allows a good degree of redistribution, especially while the "Chase" function is ON. Secondly because we reduce the number of parameters that the user must set in the beginning and then check while the program is running. In so far it would help in order to simplify the model and to better address the effects of different policies to a precise element.


In order to develop an alternative approach to the social assistance, it would be interesting to set a "poverty rate" that describes which part of the population is poor at a certain time. This "threshold" should then be linked to the amount of social expenditure (that actually must be chosen by the slider): NetLogo would then redistribute the amount of treasury associated to the actual rate of poor people.
With this peculiarity the model will be slightly less confused (one slider less) and a more precise tool to redistribute money.